centos7为docker配置远程TLS验证,端口设定为2376

来源:互联网 发布:如何修改淘宝店铺名 编辑:程序博客网 时间:2024/06/06 19:25

首先安装一个docker

yum install docke

启动Docker服务

systemctl start docker.service

查看Docker版本

docker version

centos7版本的docker的启动配置文件路径:

/lib/systemd/system/docker.service

在/lib/systemd/system/docker.service的ExecStart属性中追加:

--tlsverify \--tlscacert=/etc/docker/ca.pem \--tlscert=/etc/docker/server-cert.pem \--tlskey=/etc/docker/server-key.pem \-H tcp://0.0.0.0:2376

重启Docker服务

service docker restart

至此,该docker服务已经具备了被远程访问的能力.

但是,由于是TLS验证,所以必须要有证书,那么上面提到的/etc/docker文件夹里的ca.pem cert.pem key.pem三个文件是一定要有的.

这三个文件是由服务端生成,然后发送给客户端,客户端凭借与服务端相同的证书来进行访问.
linux下生成证书的命令为:

[root@centos7 year]# sudo su   //切换到root用户下..
[root@centos7 year]# read -s PASSWORD   //定义一个密码变量
[root@centos7 year]# read SERVER   //定义一个用户名变量
[root@centos7 year]# cd /etc/docker   //切换到生产密钥的目录.
[root@centos7 year]# openssl genrsa -aes256 -passout pass:$PASSWORD \
> -out ca-key.pem 2048
[root@centos7 year]# openssl genrsa -out server-key.pem 2048
[root@centos7 year]# openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
[root@centos7 year]# openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem \> -passin "pass:$PASSWORD" -CAcreateserial \> -out server-cert.pem
[root@centos7 year]# openssl genrsa -out key.pem 2048
[root@centos7 year]# openssl req -subj '/CN=client' -new -key key.pem -out client.csr
[root@centos7 year]# sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
[root@centos7 year]# openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem \> -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem \> -extfile extfile.cnf
[root@centos7 year]# chmod 0400 ca-key.pem key.pem server-key.pem   //更改密钥权限
[root@centos7 year]# chmod 0444 ca.pem server-cert.pem cert.pem   //更改密钥权限
[root@centos7 year]# rm client.csr server.csr   //删除无用文件
[root@centos7 year]# scp /etc/docker/*.pem youHost:/etc/docker   //将密钥发送到你的主机.

由于上面配密钥的时候使用的是用户名加密码,所以当客户端访问时,需要将用户名配在客户端的/etc/hosts文件里,格式如下:

例子: 192.168.1.1 centos7要访问的docker服务的宿主机的ip 刚才输入的SERVER变量值.

链接命令:

[root@centos7 year]# docker --tlsverify --tlscacert=/etc/docker/ca.pem \> --tlscert=/etc/docker/cert.pem --tlskey=/etc/docker/key.pem \> -H centos7:2376 version
原创粉丝点击