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的监听开放。作为容器的相关的开篇,后面会继续记录更多相关内容并组织为相关专题。
有任何问题,欢迎留言。
1