使用Docker实现容器化(一)——Docker基础的介绍与应用

1 安装Docker

卸载podman和buildah(会冲突)
yum -y erase podman buildah 安装docker(使用国内镜像)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 检查是否已安装
rpm -qa|grep docker 出现版本信息,则成功安装。

2 启动和停止Docker服务于查看Docker版本

启动Docker服务
systemctl start docker 查看Docker服务的进程信息
ps -ef|grep docker 停止docker服务
systemctl stop docker 查看docker的版本
sudo docker version

3 Docker服务与容器的基本操作

3.1 使用docker info查看Docker信息

3.1.1 查看Docker信息的命令

sudo docker info

3.1.2 输出信息最开始的五个部分介绍

上面指令运行后,可以看到输出信息最开始的部分,解释如下:

  1. Containers:0 # 0个容器
  2. Running:0 #0个正在运行的容器
  3. Paused:0 #0个正在暂停的容器
  4. Stopped:0 #0个正在停止的容器
  5. Images:0 #0个镜像

我们此时只拥有一个空的Docker。

3.1.3 容器的启动过程:

  1. 创建镜像。
  2. 根据镜像文件生成容器。
  3. 启动容器。

下面我们将启动容器。

4 根据Docker base image(基础镜像)创建与运行容器

Docker base image基础镜像文件是创建其他镜像文件的基础,要根据Docker base image才能创建其他镜像文件

4.1 下载centos base image基础镜像

第一次运行如下命令,会提示没有找到本地的基本镜像,此时会进行在线下载。(如果下载太慢请配置国内镜像站点。)
sudo docker run centos:latest

4.2 下载过慢或总失败的解决方法

配置/etc/docker/daemon.json文件,编辑如下内容后保存:

{"registry-mirrors":
	[
	"https://r9xxm8z8.mirror.aliyuncs.com",
	"https://registry.docker-cn.com",
	"http://f1361db2.m.daocloud.io"
	]
}

然后再重新启动docker,
systemctl restart docker 重新下载。
sudo docker run centos:latest

5 Docker常用命令

  1. 查看Docker信息(完成上述步骤,可以看到Containers、Stopped、Images变成1。)
    sudo docker info

执行sudo docker run指令的过程:

  1. 没有image就下载,所以image为1。
  2. 然后会根据image创建新的容器,再启动容器,所以Containers也是1。
  3. 由于容器没有进程被运行,所以启动后立刻销毁,Stopped为1。
  1. 获得所有容器信息
  • 包括已经停止的:sudo docker ps -a
  • 不包括已经停止的:sudo docker ps
  • 参数解释:
    (1)CONTAINER ID:容器ID
    (2)IMAGE:容器来自于哪个镜像
    (3)COMMAND:容器最后执行的命令
    (4)CREATED:容器创建的时间
    (5)STATUS:容器退出时的状态
    (6)PORTS:容器的端口
    (7)NAMES:容器的名称
  1. 删除容器
    创建容器,退出后自动删除(–rm参数)
    sudo docker run -it --rm centos:latest /bin/bash 根据id删除容器(配合sudo docker ps -a使用,每一行的前两个字母就是该容器的id。)
    sudo docker rm 容器id
  2. 创建容器
  • 无执行任务
    sudo docker run centos:latest
  • 有执行任务(使用/bin/bash作为容器执行任务,与bash进行信息的输入与输出需要添加-i与-t。-i保证容器的STDIN开启,-t表示容器讲分配一个模拟的终端)
    sudo docker run -i -t centos:latest /bin/bash 然后发现行首root@后面的字符串变了,这个时候可以进行一些软件的安装了。比如安装vim:
    yum install vim
  1. 退出容器
    当处于容器终端时,输入exit退出。
  2. 查看容器主机名
    通过4的2步骤i节能如容器后,输入
    hostname 查看容器主机名。发现主机名就是root@后面的字符串。
  3. 查看容器地址
    cat /etc/hosts 可以看到主机名和地址一一对应
  4. 创建后台容器进程(创建时加入-d参数)
    sudo docker run -d -i -t centos:latest /bin/bash
  5. 停止容器(容器id依然通过sudo docker ps查)
    sudo docker stop 容器id
  6. 查看容器日志
    sudo docker logs 容器id
  7. 容器重命名(容器旧名字通过sudo docker ps查)
    sudo docker rename 旧名字 新名字
  8. 启动容器
    sudo docker start 容器id
  9. 关联容器
    sudo docker attach 容器id