1.安装Docker

首先,添加Docker CE镜像源:

1
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

然后,安装Docker CE、Docker CLI和Containerd:

1
2
3
4
5
6
7
8
yum install docker-ce docker-ce-cli containerd.io
//启动docker
systemctl enable docker
systemctl start docker
//查看docker版本
docker --version
//查看是否启动成功
rpm -qa | grep docker
  • 配置国内源(请珍惜生命)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#docker 设置国内镜像源.创建或修改`vi /etc/docker/daemon.json` 文件,修改为如下形式

{
"registry-mirrors": [
"https://4sjn347i.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
],
"max-concurrent-downloads": 10,
"insecure-registries": [],
"debug": true,
"experimental": false,
"features": {
"buildkit": true
}
}

2.安装Docker Compose

下载Docker Compose可执行文件:

1
curl -SL https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

创建软链接到/usr/bin目录:

1
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

授予执行权限:

1
sudo chmod +x /usr/local/bin/docker-compose

验证安装是否成功:

1
docker-compose --version

3.完整安装过程

以下是完整的安装过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[root@node71 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

[root@node71 ~]# yum install docker-ce docker-ce-cli containerd.io
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.bfsu.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
docker-ce-stable | 3.5 kB 00:00:00
Package 3:docker-ce-24.0.2-1.el7.x86_64 already installed and latest version
Package 1:docker-ce-cli-24.0.2-1.el7.x86_64 already installed and latest version
Package containerd.io-1.6.21-3.1.el7.x86_64 already installed and latest version
Nothing to do

[root@node71 ~]# systemctl start docker

[root@node71 ~]# systemctl enabled docker
Unknown operation 'enabled'.

[root@node71 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

[root@node71 ~]# curl -SL https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 52.0M 100 52.0M 0 0 1012k 0 0:00:52 0:00:52 --:--:-- 2080k

[root@node71 ~]# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

[root@node71 ~]# docker-compose --version
-bash: /usr/local/bin/docker-compose: Permission denied

[root@node71 ~]# sudo chmod +x /usr/local/bin/docker-compose

[root@node71 ~]# docker-compose --version
Docker Compose version v2.18.1

4.docker维护

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#查看运行中的容器
[root@ansible prometheus]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e67cc0cd48a prom/prometheus "/bin/prometheus --c…" 3 minutes ago Created crazy_varahamihira
121e8c4fae84 prom/prometheus "/bin/prometheus --c…" 19 minutes ago Up 19 minutes 127.0.0.1:9090->9090/tcp prometheus

#停止运行中的容器
[root@ansible prometheus]# docker stop prometheus
prometheus



docker info # 查看docker的信息

docker search img_name # 搜索名为img_name的镜像
docker pull img_name # 将名为img_name的镜像下载到本地
docker images # 查看本地已有的镜像
docker rmi img_name # 删除名为img_name的镜像

docker ps # 列出正在运行的容器
docker ps -a # 列出所有的容器
# 使用img_name以交互模式在后台运行分配了伪终端的名为container_name的镜像
docker run -itd --name=container_name img_name

docker start container_name/container_id # 通过容器名字或ID启动容器
docker stop container_name/container_id # 通过容器名字或ID停止容器
docker restart container_name/container_id # 通过容器名字或ID重启容器
docker rm container_name/container_id # 通过容器名字或ID删除容器

docker exec -it id /bin/bash # 通过容器名字或ID进入容器
exit # 退出容器

#docker进入容器命令
docker exec -it 44fc0f0582d9 /bin/bash


5.查看报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#查看log
docker logs 34d9cdf91e46


1. # 通过查看容器日志,确定是什么问题,docker logs -f -t --tail 行数 容器名
docker logs -f -t --tail 100 <containerID>
2. # 将容器中导致错误的文件拷贝到宿主机上
docker cp containerID:container_path host_path
***说明***
containerID:容器ID
container_path:容器内文件路径(需拷贝的源文件)
host_path:宿主机路径(拷贝文件的目标)
3. # 修改拷贝出来的配置文件, 再将配置文件拷贝回去容器
docker cp host_path containerID:container_path
4. # 再次启动容器
docker start containerID

6.参考资料