Docker在linux(centos7)下的安装与使用

1 安裝

  1. docker建议安装在Centos7以上版本
  2. 以前如果安装了旧版请先卸载:
    sudo yum remove docker \
                	docker-common \
               	 	docker-selinux \
                	docker-engine
    
  3. 然后安装:
    sudo yum install -g docker-ce
    
  4. 验证安装是否成功:
    docker --version
    
  5. 更多请参考: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
    Docker在linux(centos7)下的安装与使用_第1张图片
  3. 选择镜像加速,并按提示操作:
    Docker在linux(centos7)下的安装与使用_第2张图片
  4. 验证是否加速成功:
    docker info
    
    Docker在linux(centos7)下的安装与使用_第3张图片

2 常用命令

2.1镜像命令

2.1.1 docker images

查看本机已下载的镜像,如图所示:
Docker在linux(centos7)下的安装与使用_第4张图片
Options说明:
Docker在linux(centos7)下的安装与使用_第5张图片

2.1.2 docker search

Docker在linux(centos7)下的安装与使用_第6张图片

2.1.3 docker pull

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

2.1.4 docker rmi

Docker在linux(centos7)下的安装与使用_第7张图片

2.2 容器命令

2.2.1 新建并启动容器

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

Docker在linux(centos7)下的安装与使用_第8张图片

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

  1. docker ps [OPTIONS]

Docker在linux(centos7)下的安装与使用_第9张图片

2.2.3 容器退出方式

在这里插入图片描述

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

Docker在linux(centos7)下的安装与使用_第10张图片

  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:容器内路径 目的主机路径
    Docker在linux(centos7)下的安装与使用_第11张图片

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端口,结果如下所示
    Docker在linux(centos7)下的安装与使用_第12张图片
  3. 假设删除tomcat的文档,来模拟修改后的tomcat,来学一下conmit命令
    Docker在linux(centos7)下的安装与使用_第13张图片
  4. 提交这个没有文档的tomcat
    docker commit [OPTIONS] [CONTAINER ID] [ARGS]
    -a 表作者,-m表评论信息 [ARGS] 表命名空间,其中:后面跟版本号
    Docker在linux(centos7)下的安装与使用_第14张图片
  5. 启动这个没有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
    Docker在linux(centos7)下的安装与使用_第15张图片
  2. 效果展示如下
    Docker在linux(centos7)下的安装与使用_第16张图片
    注意,添加数据券后,即使容器关闭,当主机数据券改动时,仍会同步到容器。另:docker run -it -v /宿主机目录:/容器内目录:ro centos /bin/bash这个命令中添加了:ro,将会把数据卷改为只读

2.4.1 dockerFile添加数据卷

  1. 思考一个问题,使用-v命令建立了数据卷,在当前机器上运行自然正常,因为目录是存在的。若要把容器发布给他人使用,一旦他人机器上没有个目录,则会出现移植性的问题。
  2. 我们使用dockerFile解决问题,首先新建dockerFile文件
    Docker在linux(centos7)下的安装与使用_第17张图片
    图片上的命令等价于docker run -it -v /host1:dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos,当然了这样的两个-v写法是不允许的,不过可以体会到编写这样的dockerFile文件所产生的效果。
  3. build一个新镜像,run就行了
    Docker在linux(centos7)下的安装与使用_第18张图片

你可能感兴趣的:(Docker在linux(centos7)下的安装与使用)