共计 3519 个字符,预计需要花费 9 分钟才能阅读完成。
docker 装置
- 装置依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 装置 Docker-CE
sudo yum install docker-ce
- 报错
--> Processing Conflict: 1:docker-ce-cli-18.09.6-3.el7.x86_64 conflicts docker
--> Processing Conflict: 1:docker-ce-cli-18.09.6-3.el7.x86_64 conflicts docker-io
--> Processing Conflict: 3:docker-ce-18.09.6-3.el7.x86_64 conflicts docker
--> Processing Conflict: 3:docker-ce-18.09.6-3.el7.x86_64 conflicts docker-io
--> Finished Dependency Resolution
Error: docker-ce conflicts with 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
Error: docker-ce-cli conflicts with 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
- 解决办法
1、查看装置过的 docker:yum list installed | grep docker
docker.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
docker-client.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
docker-common.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
2、卸载 docker:sudo yum remove -y docker-ce.x86_64 docker-client.x86_64 docker-common.x86_64
3、删除容器镜像:sudo rm -rf /var/lib/docker
4、重新安装 docker
sudo yum install docker-ce
- 启动 docker
开机自启
sudo systemctl enable docker
启动 docker 服务
sudo systemctl start docker
- 增加 docker 用户组(可选)
1. 建设 Docker 用户组
sudo groupadd docker
2. 增加以后用户到 docker 组
sudo usermod -aG docker $USER
-
镜像减速配置
# 加速器地址:# 阿里云控制台搜寻容器镜像服务 # 进入容器镜像服务,左侧最下方容器镜像服务中复制加速器地址 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' {"registry-mirrors": ["你的加速器地址"] } EOF # 重启 docker sudo systemctl daemon-reload sudo systemctl restart docker
-
治理镜像
# 下载镜像:docker pull < 镜像名:tag> 如:下载 centos 镜像 docker pull centos docker pull sameersbn/redmine:latest # 查看已下载镜像 docker images # 删除容器 docker rm < 容器名 or ID> # 查看容器日志 docker logs -f < 容器名 or ID> # 查看正在运行的容器 docker ps # 查看所有的容器,包含曾经进行的。docker ps -a # 删除所有容器 docker rm $(docker ps -a -q) # 进行、启动、杀死指定容器 docker start < 容器名 or ID> # 启动容器 docker stop < 容器名 or ID> # 启动容器 docker kill < 容器名 or ID> # 杀死容器 # 后盾运行 docker run -d <Other Parameters> docker run -d -p 127.0.0.1:33301:22 centos6-ssh # 裸露端口:一共有三种模式进行端口映射 docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口 # 例如:docker -p 127.0.0.1:3306:3306 映射本机 3306 端口到容器的 3306 端口 docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口 # 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器 3306 端口 docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口 # 例如:docker -p 3306:3306 # 映射本机的 3306 端口到容器的 3306 端口 # 映射数据卷 docker -v /home/data:/opt/data # 这里 /home/data 指的是宿主机的目录地址,后者则是容器的目录地址
构建通过 dockerfile 构建 docker 镜像
sudo docker build -t 镜像名称 镜像地位
镜像操作
列出镜像(image):
docker images 或 docker image ls
拉取镜像
docker pull xxxx
eg: 创立 centos 镜像,
docker pull centos
查找镜像
sudo docker search xxxx
构建镜像的形式有以下两种:
1、应用 docker commit 容器 id 镜像名称: 版本号
2、应用 docker build 和 Dockerfile 文件来构建
将容器转成镜像
1、docker commit 容器 id 镜像名称: 版本号 # 将文件打包成镜像
2、docker save -o 压缩文件名称 镜像名称: 版本号 # 将镜像转成压缩文件,给其他人应用
3、docker load -i 压缩文件名称 # 其他人将压缩文件解压成镜像
删除 images,通过 image 的 id 来指定删除谁
docker rmi <image id>
删除全副 image
docker rmi $(docker images -q)
容器操作
列出容器
命令 1:docker ps
OPTIONS 阐明:
-a : 显示所有的容器,包含未运行的。
-f : 依据条件过滤显示的内容。
--format : 指定返回值的模板文件。
-l : 显示最近创立的容器。
-n : 列出最近创立的 n 个容器。
--no-trunc : 不截断输入。
-q : 静默模式,只显示容器编号。
-s : 显示总的文件大小。
命令 2:
docker container ls 列出以后正在运行的 container
docker container ls -a 列出所有状态的 container
docker container prune 清理不再应用的 container
创立一个容器并进入
命令:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS:
-t: 为容器重新分配一个伪输出终端,通常与 -i 同时应用
-i: 以交互模式运行容器,通常与 -t 同时应用
-d: 后盾运行容器,并返回容器 ID
--name: 为容器指定一个名称
-p: 端口映射,格局为:主机 (宿主) 端口: 容器端口
-v: 挂载宿主机文件夹,格局为:宿主机文件夹:容器文件夹
--link: 增加链接到另一个容器
-m: 设置容器应用内存最大值;
容器开关:
docker start 容器名称或容器 ID: 启动一个或多个曾经被进行的容器
docker stop 容器名称或容器 ID: 进行一个运行中的容器,附加 -t=60 参数敞开容器的限时
docker restart 容器名称或容器 ID: 重启容器
docker kill 容器名称或容器 ID:强制间接敞开容器
进行所有的 container:
docker stop $(docker ps -a -q)
删除某一个 container:
docker rm -f 容器 id
删除所有 container:
docker rm $(docker ps -a -q)
进入容器:
docker exec -it 容器名称 /bin/bash
退出容器:exit
获取容器 / 镜像的元数据
docker inspect 镜像 / 容器名称(id)
正文完