Last Updated on

前言

Docker是一个开源的应用容器引擎,是目前最主流的容器引擎,在目前微服务横行的环境下,非常常用且重要,也是Kubernetes的基础,下面就开始Docker的第一步,记录介绍Docker的安装并开启remote api的监听端口。

正文

1. 安装Docker

安装Docker非常简单,但所以学习或使用,都希望大家学会看官方文档,因为版本会不断更新,所有博客文档都可能会过期,官方文档永远才是最正确的,所有都以官方文档为准,所以在看博客的时候,不要盲目跟步骤做,而是要学会如果使用官方文档,这样不管版本怎样变化都能应对自如。

访问Docker官方网站,在网站最下面右下角,进去文档页面:

进入文档页面,不会英文?没关系,直接使用chrome的页面翻译功能,尽管翻译不会很对,但大体就能看懂了。没用chrome浏览器?那还想什么,还不快换chrome!

翻译过后,如图,左边导航栏直接找到Docker社区版(Docker是有收费企业版的),也就是开源版,进去Centos的安装文档。

OK,剩下的就是跟着文档,安装Docker。系统要求为Centos7正式版,且centos-extras的yum库必须为启用状态,这个默认是就是启用的,就在默认的/etc/yum.repos.d/CentOS-Base.repo 基础库里,如下图为默认的开启状态。


以下为以官方文档为准的跟着文档走的安装步骤,此时docker最新稳定版本为19.03.1。

1. 卸载旧版本

# 使用root用户操作
$ yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. 安装依赖包

$ yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

3. 添加docker的yum库

$ yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

添加yum库时,可以添加非稳定版的,在文档中也有说明,当然一般直接使用稳定版的即可。

4. yum安装docker

推荐使用yum安装,方便快捷

$ yum install -y docker-ce docker-ce-cli containerd.io

# 安装后,启动docker服务
$ systemctl restart docker

2. 配置remote api端口监听

按上述步骤安装启动docker服务后,默认为守护进程,但不监听任何端口,使用本地的文件sock来进行连接,也就是说,要使用此docker只能在这台服务器上进行操作才能连接此docker,这对于很多请看下,很不方便。

docker本身为了方便使用,提供了基于rest的API接口,用这些api就能远程连接docker并操作,默认docker服务是不会开启api接口和监听的。需要手动配置,访问官方文档,如下图:

根据文档,修改docker启动监听端口,有两种方法进行修改:

  • 使用systemctl命令管理服务的系统,通过修改docker.service文件来实现,例如RedHat,CentOS,Ubuntu和SLES的最新版本。
  • 不使用systemctl命令管理服务的系统,则通过修改daemon.json文件来实现。

修改docker.service方式

# 修改docker的服务配置文件
$ vim /usr/lib/systemd/system/docker.service
--------------------------------------------------------------------
# 在启动命令这一行的最后添加 -H tcp://0.0.0.0:2375,开放2375端口
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
--------------------------------------------------------------------

# 更新docker服务配置
$ systemctl daemon-reload

# 重启docker服务
$ systemctl restart docker

修改daemon.json方式

# 新增或编辑docker配置文件
$ vim /etc/docker/daemon.json
--------------------------------------------------------------------
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
--------------------------------------------------------------------

# 重启docker

修改完成后,开放防火墙端口,运行下面命令查看端口是否成功监听。

# 查看是否成功监听
$ netstat -lnpt|grep docker

# 开放防火墙
$ firewall-cmd --add-port=2375/tcp --permanent
$ firewall-cmd --reload

3. 配置TLS证书保护连接

上面启用了2375端口后,默认是没有任何安全防护的,任何人都可以直接连接上docker的2375端口就可以直接操作docker,非常危险。这只适用与内网中进行连接操作,如果需要开放到外网中,那么就需要配置TLS证书以保护连接安全。

这在官方文档中,也有介绍,如图,点击图中链接进入,查看文档:

使用TLS和管理CA是一个比较高级的问题,在生产中使用之前,需要先熟悉理解OpenSSL,x509和TLS。这里暂不讲多了,后面会再单开一篇,专门记录介绍相关内容,而Docker的TLS证书生成与配置使用也放到后面再一起记录。

结束

OK,到此就完成了简单的docker安装与api的监听开放。作为容器的相关的开篇,后面会继续记录更多相关内容并组织为相关专题。

有任何问题,欢迎留言。