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 dockerdocker.x86_64                           2:1.13.1-74.git6e3bb8e.el7.centosdocker-client.x86_64                    2:1.13.1-74.git6e3bb8e.el7.centosdocker-common.x86_64                    2:1.13.1-74.git6e3bb8e.el7.centos2、卸载docker:sudo yum remove -y docker-ce.x86_64 docker-client.x86_64 docker-common.x86_643、删除容器镜像:sudo rm -rf /var/lib/docker4、 重新安装dockersudo yum install docker-ce 
  • 启动docker
开机自启sudo systemctl enable docker 启动docker服务  sudo systemctl start docker 
  • 增加docker用户组(可选)
1. 建设 Docker 用户组sudo groupadd docker2.增加以后用户到 docker 组sudo usermod -aG docker $USER 
  • 镜像减速配置

    # 加速器地址 :# 阿里云控制台搜寻容器镜像服务# 进入容器镜像服务, 左侧最下方容器镜像服务中复制加速器地址sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{  "registry-mirrors": ["你的加速器地址"]}EOF# 重启dockersudo systemctl daemon-reloadsudo systemctl restart docker 
  • 治理镜像

    # 下载镜像:docker pull <镜像名:tag>    如:下载centos镜像docker pull centosdocker 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镜像

  1. sudo docker build -t 镜像名称 镜像地位

镜像操作

  1. 列出镜像(image):
  2. docker images 或 docker image ls
  3. 拉取镜像
  4. docker pull xxxx
  5. eg:创立centos镜像,
  6. docker pull centos
  7. 查找镜像
  8. sudo docker search xxxx
  9. 构建镜像的形式有以下两种:
  10. 1、应用docker commit 容器id 镜像名称:版本号
  11. 2、应用docker build和Dockerfile文件来构建
  12. 将容器转成镜像
  13. 1、docker commit 容器id 镜像名称:版本号 # 将文件打包成镜像
  14. 2、docker save -o 压缩文件名称 镜像名称:版本号 # 将镜像转成压缩文件,给其他人应用
  15. 3、docker load -i 压缩文件名称 # 其他人将压缩文件解压成镜像
  16. 删除images,通过image的id来指定删除谁
  17. docker rmi <image id>
  18. 删除全副image
  19. docker rmi $(docker images -q)

容器操作

  1. 列出容器
  2. 命令1:docker ps
  3. OPTIONS阐明:
  4. -a :显示所有的容器,包含未运行的。
  5. -f :依据条件过滤显示的内容。
  6. --format :指定返回值的模板文件。
  7. -l :显示最近创立的容器。
  8. -n :列出最近创立的n个容器。
  9. --no-trunc :不截断输入。
  10. -q :静默模式,只显示容器编号。
  11. -s :显示总的文件大小。
  12. 命令2:
  13. docker container ls 列出以后正在运行的container
  14. docker container ls -a 列出所有状态的container
  15. docker container prune 清理不再应用的container
  16. 创立一个容器并进入
  17. 命令:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  18. OPTIONS:
  19. -t:为容器重新分配一个伪输出终端,通常与 -i 同时应用
  20. -i:以交互模式运行容器,通常与 -t 同时应用
  21. -d:后盾运行容器,并返回容器ID
  22. --name:为容器指定一个名称
  23. -p:端口映射,格局为:主机(宿主)端口:容器端口
  24. -v:挂载宿主机文件夹,格局为: 宿主机文件夹:容器文件夹
  25. --link: 增加链接到另一个容器
  26. -m:设置容器应用内存最大值;
  27. 容器开关:
  28. docker start 容器名称或容器ID:启动一个或多个曾经被进行的容器
  29. docker stop 容器名称或容器ID:进行一个运行中的容器,附加 -t=60参数敞开容器的限时
  30. docker restart 容器名称或容器ID:重启容器
  31. docker kill 容器名称或容器ID:强制间接敞开容器
  32. 进行所有的container:
  33. docker stop $(docker ps -a -q)
  34. 删除某一个container:
  35. docker rm -f 容器id
  36. 删除所有container:
  37. docker rm $(docker ps -a -q)
  38. 进入容器:
  39. docker exec -it 容器名称 /bin/bash
  40. 退出容器:exit
  41. 获取容器/镜像的元数据
  42. docker inspect 镜像/容器名称(id)