赞
踩
一、Docker 安装
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看此前提条件来验证你的 CentOS 版本是否支持 Docker 。 需要安装 64位CentOS7.x 以上的版本。
1、查看当前系统的内核版本是否高于 3.10
[root@docker-1 ~]# uname -r 3.10.0-693.el7.x86_642、 安装 Docker 服务
卸载旧版本:(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
安装所需的软件包
yum-utils 提供了 yum-config-manager 实用程序,并且 devicemapper 存储驱动需要device-mapperpersistent-data 和 lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
设置Docker的镜像仓库(阿里)
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装最新版本的 Docker CE
yum -y install docker-ce
二、卸载 Docker 服务
1. 卸载 Docker 软件包
yum remove docker-ce
2. 删除镜像/容器等
rm -rf /var/lib/docker
三、启动与停止Docker服务
systemctl 命令是系统服务管理器指令,它是service 和 chkconfig 两个命令组合。 启动docker:systemctl start docker 停止docker:systemctl stop docker 重启docker:systemctl restart docker 查看docker状态:systemctl status docker 开机自动启动docker:systemctl enable docker四、 镜像操作
1、查看镜像列表
#列出已安装的所有镜像 docker images #只显示镜像ID docker images -q这些镜像都是存储在Docker宿主机的 /var/lib/docker 目录下
2、拉取镜像
如果拉取失败,则配置国内镜像加速器(阿里):docker配置国内镜像加速器_毛豆有毛没豆的博客-CSDN博客_docker配置国内加速器
#不配置版本号,则默认拉取最新版本 docker pull 镜像名:版本号 docker pull mysql:5.73、删除镜像
#删除某一个镜像 docker rmi -f 镜像ID #删除所有镜像 (是 `` 反单引号 ) docker rmi -f `docker images -q` 其中 docker images -q 获取所有镜像id4、导出镜像
## docker本地目录 cd /var/lib/docker ## 导出镜像 docker save 镜像名称:镜像版本 -o 自定义镜像名称.tar5、重命名镜像源名称
docker tag 镜像ID 自定义镜像源别名:自定义的镜像版本
6、镜像提交
## 登入docker Hub账号 docker login ##推送镜像 docker push 镜像源名称:tag ## 登出docker Hub账号 docker logout7、镜像构建
五、容器操作
1、查看容器
#查看正在运行的隆起 docker ps #查看所有隆起 docker ps -a #查看最后一次运行的容器 docker ps -l #查看停止的容器 docker ps -f status=exited
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 容器 ID 镜像 初始命令 创建日期 容器状态 端口号 容器名字 2、创建容器
注意:必须先有镜像,再有容器
docker pull mysql:5.7
创建容器命令:
docker run [OPTIONS] 镜像名:标签名
创建容器 [OPTIONS] 常用的参数说明:-i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与-t 同时使用 。
-t 启动后会进入其容器命令行, 通常与 -i 同时使用; 加入 -it 两个参数后,容器创建就能登录进去。即 分配一个伪终端。
--name 为创建的容器指定一个名称 。
-d 创建一个守护式容器在后台运行,并返回容器ID; 这样创建容器后不会自动登录容器,如果加-i参数,创建后就会运行容器。
-v 表示目录映射, 格式为:-p 宿主机目录:容器目录 注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p 表示端口映射,格式为:-p 宿主机端口:容器端
创建容器,例子:
1、交互式容器
说明: 就是创建容器后,马上会启动容器,并进入容器
docker run -it --name=mysqlMaster mysql:5.7 /bin/bash
(1)退出容器:exit ,此时容器为退出停止状态
(2)退出,但不停止容器:按键盘:Ctrl + p + q ,按一次一行,则多按几次,一般是连两次即可。
2、守护式容器
说明:后台运行的容器
docker run -id --name=mysqlSalve mysql:5.7 /bin/bash
3、例如
docker run -d --name=registry --restart=always --privileged=true -p 5000:5000 -v /registry:/var/lib/registry registry:latest
说明:--restart=always 挂掉自动重启
--privileged=true 避免centos7下,系统的一些权限未对docker开放
3、启动/停止容器
启动已运行过的容器:
docker start 容器名称|容器id
如:docker start mysqlMaster停止正在运行的容器(正常停止):
docker stop 容器名称|容器id
如:docker stop mysqlMaster4、登入容器
docker exec -it 容器名称|容器id /bin/bash
如:docker exec -it mysqlMaster /bin/bash
5、删除容器
docker rm 容器名称 | 容器ID
例:docker rm mysqlMaster
注意,只能删除停止的容器6、查看容器IP
7、查看容器运行日志
# 查看容器所有状态信息 docker inspect 容器名称/容器ID # 查看 容器ip 地址 docker inspect 容器名称/容器ID --format='{{.NetworkSettings.IPAddress}}' # 容器运行状态 docker inspect 容器名称/容器ID --format '{{.Name}} {{.State.Running}}'docker logs 容器名称/容器ID
8、查看容器内的进程信息
docker top 容器名称/容器ID
9、实时监控容器资源使用情况
docker stats 容器ID
六、拷贝宿主机与容器中的文件
1、将宿主机文件拷贝到容器内
语法:
docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目录
例
docker cp /root/testCopy.txt wnd_tomcat8:/opt/
2、从容器内文件拷贝到宿主机
语法:
docker cp 容器名称:要拷贝的容器文件或目录 宿主机文件或目录
例
docker cp wnd_tomcat8:/opt/testCopy.txt /root
七、数据目录挂载
docker run -id --name=wnd_tomcat8 -p 8888:8080 -v /usr/local/project:/usr/local/tomcat/webapps --privileged=true tomcat:8 /bin/bash
-p 表示地址映射, 宿主机端口号:容器运行端口号
-v 表示地址映射, 宿主机目录:容器映射目录
--privileged=true 如果映射的是多级目录,防止有可能会出现没有权限的问题,所以加上此参数
八、备份与迁移
1、容器保存为镜像
语法:
docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名]
(1)、无目录挂载-容器保存为镜像
查看镜像是否有挂载目录:docker inspect --format='{{.Mounts}}' 容器名
例: docker commit -m=“mysql一主一从” -a="maodou" mysql-master mysql-master:1.1docker commit -m=“mysql一主一从” -a="maodou" mysql-slave mysql-slave:1.1
(2)、有目录挂载-容器保存为镜像
问题: 如果Docker对容器挂载了数据目录, 在将容器保存为镜像时,数据不会被保存到镜像中。
原因:因为宿主机与容器做了路径映射,再commit一个新的镜像时,该路径下的所有数据都会被抛弃,不会 被保存到新镜像中。可通过 docker inspect --format='{{.Mounts}}' 镜像名 查看是否有目录挂载.
解决:
目录挂载方法。先把在宿主机的数据备份在某个目录下,在 docker run 的时候使用-v参数将宿主机上的 目录映射到容器里的目标路径中(tomcat是 /usr/local/tomcat/webapps ,mysql是var/lib/mysql)
拷贝方法。先把在宿主机的数据备份在某个目录下,通过拷贝的方法 docker cp 将备份的数据复制进容 器里的目标路径中(tomcat是 /usr/local/tomcat/webapps ,mysql是var/lib/mysql)。
2、镜像备份
docker save -o mysql-master.1.1.tar mysql-master:1.1
3、镜像恢复
删除镜像:docker rmi mysql-master:1.1
恢复镜像:docker load -i mysql-master.1.1.tar
-i 输入的镜像文件
九、容器中安装vim
apt-get update,然后执行 apt-get install -y vim
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。