1 安裝

  1. docker建议安装在Centos7以上版本
  2. 以前如果安装了旧版请先卸载:
sudo yum remove docker \
            	docker-common \
           	 	docker-selinux \
            	docker-engine
  1. 然后安装:
sudo yum install -g docker-ce
  1. 验证安装是否成功:
docker --version
  1. 更多请参考:https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/

1.1 镜像加速

  1. docker默认从dockerHub上下载镜像,速度较慢,建议连接阿里云镜像服务器获得加速
  2. 进入阿里云容器镜像加速服务网站,登陆并进入管理控制台:
    https://www.aliyun.com/product/acr?spm=5176.202918.1263681.2.1bf54ef51HwG0Z
  3. centos7 docker jenkins安装 docker在centos7中安装_centos


  4. 选择镜像加速,并按提示操作:
  5. 验证是否加速成功:
docker info

2 常用命令

2.1镜像命令

2.1.1 docker images

查看本机已下载的镜像,如图所示:

centos7 docker jenkins安装 docker在centos7中安装_centos_02


Options说明:

centos7 docker jenkins安装 docker在centos7中安装_tomcat_03

2.1.2 docker search

centos7 docker jenkins安装 docker在centos7中安装_centos_04

2.1.3 docker pull

docker pull XXX:latest
XXX代表镜像名字,:后跟想下载的版本号,也可以直接docker pull XXX,代表下载最新

2.1.4 docker rmi

centos7 docker jenkins安装 docker在centos7中安装_centos_05

2.2 容器命令

2.2.1 新建并启动容器

  1. docker run [OPTIONS] image [COMMONAD] [Args]
    eg: docker run -it --name=centos01 centos
    启动一个centos的容器,通过伪终端以交互模式运行,并命名容器为centos01

centos7 docker jenkins安装 docker在centos7中安装_centos_06

2.2.2 列出当前正在运行的容器

  1. docker ps [OPTIONS]

centos7 docker jenkins安装 docker在centos7中安装_centos_07

2.2.3 容器退出方式

centos7 docker jenkins安装 docker在centos7中安装_tomcat_08

2.2.3.1 容器不停止退出后的操作

centos7 docker jenkins安装 docker在centos7中安装_tomcat_09

  1. docker attach [CONTAINER ID] :重新进入容器
  2. docker exec [CONTAINER ID] [ARGS] :带着[ARGS]这个命令进入容器并执行,但对话窗口仍然在主机

2.2.4 容器启动、重启、缓慢停止、强制停止、删除

  1. 启动: docker start[CONTAINER ID]
  2. 重启: docker restart [CONTAINER ID]
  3. 缓慢停止(正常关机): docker stop [CONTAINER ID]
  4. 缓慢停止(拔电源): docker kill [CONTAINER ID]
  5. 删除( -f 强制删除): docker rm [CONTAINER ID]
  6. 删除多个: docker rm -f $(docker ps -a -q)docker ps -a -q | xargs docker rm

2.2.5 拷贝容器内文件至主机

  1. docker cp 容器ID:容器内路径 目的主机路径
  2. centos7 docker jenkins安装 docker在centos7中安装_centos_10


2.3 Commit命令

  1. docker run -it -p 8888:8080 tomat:将容器的8080端口映射到主机的8888端口,此时访问主机的8888端口等于在访问容器的localhost:8080
  2. docker run -it -P tomat:让docker随机分配一个端口来匹配容器内tomcat的8080端口,结果如下所示
  3. 假设删除tomcat的文档,来模拟修改后的tomcat,来学一下conmit命令
  4. 提交这个没有文档的tomcat
    docker commit [OPTIONS] [CONTAINER ID] [ARGS]-a 表作者,-m表评论信息 [ARGS] 表命名空间,其中:后面跟版本号
  5. centos7 docker jenkins安装 docker在centos7中安装_tomcat_11


  6. 启动这个没有doc的tomcat
    docker run -it -p 7777:8080 atguigu/tomcat02:1.2,注意版本号一定要加上,不然docker会去启动atguigu/tomcat:latest版本,而这明显是找不到的。

2.4 容器数据卷

2.4.1 使用命令-v添加数据卷

  1. docker run -it -v /宿主机目录:/容器内目录 centos /bin/bash
  2. centos7 docker jenkins安装 docker在centos7中安装_centos_12


  3. 效果展示如下

    注意,添加数据券后,即使容器关闭,当主机数据券改动时,仍会同步到容器。另:docker run -it -v /宿主机目录:/容器内目录:ro centos /bin/bash这个命令中添加了:ro,将会把数据卷改为只读

2.4.1 dockerFile添加数据卷

  1. 思考一个问题,使用-v命令建立了数据卷,在当前机器上运行自然正常,因为目录是存在的。若要把容器发布给他人使用,一旦他人机器上没有个目录,则会出现移植性的问题。
  2. 我们使用dockerFile解决问题,首先新建dockerFile文件

    图片上的命令等价于docker run -it -v /host1:dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos,当然了这样的两个-v写法是不允许的,不过可以体会到编写这样的dockerFile文件所产生的效果。
  3. build一个新镜像,run就行了