使用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 输出信息最开始的五个部分介绍
上面指令运行后,可以看到输出信息最开始的部分,解释如下:
- Containers:0 # 0个容器
- Running:0 #0个正在运行的容器
- Paused:0 #0个正在暂停的容器
- Stopped:0 #0个正在停止的容器
- Images:0 #0个镜像
我们此时只拥有一个空的Docker。
3.1.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常用命令
- 查看Docker信息(完成上述步骤,可以看到Containers、Stopped、Images变成1。)
sudo docker info
执行
sudo docker run
指令的过程:
- 没有image就下载,所以image为1。
- 然后会根据image创建新的容器,再启动容器,所以Containers也是1。
- 由于容器没有进程被运行,所以启动后立刻销毁,Stopped为1。
- 获得所有容器信息
- 包括已经停止的:
sudo docker ps -a
- 不包括已经停止的:
sudo docker ps
- 参数解释:
(1)CONTAINER ID:容器ID
(2)IMAGE:容器来自于哪个镜像
(3)COMMAND:容器最后执行的命令
(4)CREATED:容器创建的时间
(5)STATUS:容器退出时的状态
(6)PORTS:容器的端口
(7)NAMES:容器的名称
- 删除容器
创建容器,退出后自动删除(–rm参数)sudo docker run -it --rm centos:latest /bin/bash
根据id删除容器(配合sudo docker ps -a
使用,每一行的前两个字母就是该容器的id。)sudo docker rm 容器id
- 创建容器
- 无执行任务
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
- 退出容器
当处于容器终端时,输入exit
退出。 - 查看容器主机名
通过4的2步骤i节能如容器后,输入hostname
查看容器主机名。发现主机名就是root@后面的字符串。 - 查看容器地址
cat /etc/hosts
可以看到主机名和地址一一对应。 - 创建后台容器进程(创建时加入-d参数)
sudo docker run -d -i -t centos:latest /bin/bash
- 停止容器(容器id依然通过sudo docker ps查)
sudo docker stop 容器id
- 查看容器日志
sudo docker logs 容器id
- 容器重命名(容器旧名字通过sudo docker ps查)
sudo docker rename 旧名字 新名字
- 启动容器
sudo docker start 容器id
- 关联容器
sudo docker attach 容器id