1. 介绍

主要讲解如何在服务器中安装Docker。Docker分为两个版本:Docker CE (社区版),Docker EE (企业版)。

简而言之,一个是开源免费版本,一个是闭源收费版本。这里主要介绍免费版本的安装。

2. 安装

  1. 首先,安装Docker的依赖库:
[root@iZuf652exfq23jsos943m5Z ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

直到输出:Complete! 为止。

  1. 添加DockerCE的软件地址repo信息到yum中:(采取的是阿里云的镜像服务地址,国内访问速度会快一些)
[root@iZuf652exfq23jsos943m5Z ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

直到输出如下信息:


Loaded plugins: fastestmirror
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@iZuf652exfq23jsos943m5Z ~]# 

就代表我们配置完毕了。

  1. 刷新yum 缓存配置:
[root@iZuf652exfq23jsos943m5Z ~]# yum makecache fast

刷新完毕之后会输出:(具体的根据大家的环境不同,会输出的内容是不一样的哦。但是要注意:docker-ce-stable 字段就代表我们的配置成功了)

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base                                                                              | 3.6 kB  00:00:00     
docker-ce-stable                                                                  | 3.5 kB  00:00:00     
epel                                                                              | 4.7 kB  00:00:00     
extras                                                                            | 2.9 kB  00:00:00     
updates                                                                           | 2.9 kB  00:00:00     
(1/2): docker-ce-stable/7/x86_64/updateinfo                                       |   55 B  00:00:00     
(2/2): docker-ce-stable/7/x86_64/primary_db                                       |  82 kB  00:00:00     
Metadata Cache Created

直到最后:Metadata Cache Created 就代表刷新完成了。

  1. 安装Docker CE
[root@iZuf652exfq23jsos943m5Z ~]# yum -y install docker-ce

然后系统就会进入安装模式了。整个安装过程时间会稍微长一会。(具体的速度根据服务器下载各种依赖库的时长决定)

直到最后输出:Complete! 就代表安装完毕了。

  1. 启动Docker服务
[root@iZuf652exfq23jsos943m5Z ~]# systemctl start docker
[root@iZuf652exfq23jsos943m5Z ~]# 

我们如果想停止,就是输入:systemctl stop docker。如果想查询状态就输入 systemctl status docker。

更多的systemctl命令,可以通过网络进行搜索。这里就不扩展介绍了

3. 配置

Docker的默认官方远程仓库为:hub.docker.com,国内访问速度较慢。需要配置为国内镜像服务地址。

首先,创建一个docket文件夹,然后再创建一个daemon.json配置文件:

[root@iZuf652exfq23jsos943m5Z ~]# mkdir -p /etc/docker
[root@iZuf652exfq23jsos943m5Z ~]# vim /etc/docker/daemon.json

然后在文件中配置:

{
  "registry-mirrors": ["https://kqh8****.mirror.aliyuncs.com"]
}

里面的配置链接,根据
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取的加速器地址。

配置完毕之后,执行刷新配置文件:

[root@iZuf652exfq23jsos943m5Z ~]# systemctl daemon-reload
[root@iZuf652exfq23jsos943m5Z ~]#

然后重启服务生效:

[root@iZuf652exfq23jsos943m5Z ~]# systemctl restart docker

这个时候我们就可以使用docker拉取各种镜像了。

例如拉取nginx的镜像:

[root@iZuf652exfq23jsos943m5Z ~]# docker search nginx
[root@iZuf652exfq23jsos943m5Z ~]# docker pull nginx:latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@iZuf652exfq23jsos943m5Z ~]# 

这个时候只是将镜像拉取到本地了。

我们如果要查看本地拉取的镜像:

[root@iZuf652exfq23jsos943m5Z ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    605c77e624dd   9 months ago   141MB
[root@iZuf652exfq23jsos943m5Z ~]# 

例如我们拉取最新的Halo 1.6.0版本

[root@iZuf652exfq23jsos943m5Z ~]# docker pull halohub/halo:1.6.0
1.6.0: Pulling from halohub/halo
cf92e523b49e: Pull complete 
be4c7f172af2: Pull complete 
521599bc479f: Pull complete 
08fd90861fe7: Pull complete 
b1ea2ac8cad0: Pull complete 
8c707d1aa2bb: Pull complete 
f554acbef747: Pull complete 
4f4fb700ef54: Pull complete 
6a5501195735: Pull complete 
a9d020cd700f: Pull complete 
Digest: sha256:c7626d050f308d43610afee730aef7b23804be316eb882b6cdf6c3e7cc230db3
Status: Downloaded newer image for halohub/halo:1.6.0
docker.io/halohub/halo:1.6.0

我们查询镜像就会有两个镜像了:

[root@iZuf652exfq23jsos943m5Z ~]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
halohub/halo   1.6.0     4cb8e63d2604   13 days ago    356MB
nginx          latest    605c77e624dd   9 months ago   141MB
[root@iZuf652exfq23jsos943m5Z ~]# 

最后,就是对镜像进行安装操作了,例如安装nginx:

[root@iZuf652exfq23jsos943m5Z ~]# docker run --name nginx-test -p 8080:80 -d nginx
1b3ba970a3388c61990542858003c08a4be78ef170ddd036b5149361e69289f0
[root@iZuf652exfq23jsos943m5Z ~]# 

命令参数说明:

  • --name nginx-test:容器名称。
  • -p 8080:80: 端口进行映射,将本地8080端口映射到容器内部的80端口。
  • -d nginx: 设置容器在后台一直运行。

这个时候,我们就可以通过浏览器访问nginx了。

或者通过Docker 安装halo服务:

[root@iZuf652exfq23jsos943m5Z ~]# docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.6.0

如果想了解Halo博客如何通过Docker进行安装,可以通过halo官网示例进行了解:
https://docs.halo.run/getting-started/install/docker

我们如果想删除镜像,可以通过: docker rmi -f nginx 或者 docker rmi -f halo 进行删除镜像

4. 卸载

我们如果想卸载本地安装的Docker。可以通过命令:

[root@iZuf652exfq23jsos943m5Z ~]# yum remove docker \
>                  docker-client \
>                  docker-client-latest \
>                  docker-common \
>                  docker-latest \
>                  docker-latest-logrotate \
>                  docker-logrotate \
>                  docker-selinux \
>                  docker-engine-selinux \
>                  docker-engine \
>                  docker-ce

就会进行卸载操作了。