发布于 

Docker安装教程

这里面采用的是Debian10,阿里云轻量服务器。

docker安装

1、首先拆卸旧版本docker

1
sudo apt-get remove docker docker-engine docker.io containerd run

2、为Debian安装必要的依赖

1
2
3
4
5
6
7
8
9
10
11
#更新 apt 包索引。
sudo apt-get update
#安装 apt 依赖包,用于通过 HTTPS 来获取仓库。
sudo apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
#添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

3、通过 add-apt-repository增加docker镜像

1
2
3
4
add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"

4、更新apt镜像

1
apt update

5、安装docker-ce

1
apt install -y docker-ce docker-ce-cli containerd.io

至此,docker安装完毕。

docker配置

开启远程管理端口2375

注意:2375端口是高危端口,开启docker TCP连接请务必配置证书、IP白名单等验证方式!

1
vim /usr/lib/systemd/system/docker.service

修改成以下内容

1
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

2375鉴权配置

1、创建工作目录并进入

1
mkdir ca-work && cd ca-work

2、生成CA根证书的key

1
openssl genrsa -aes256 -out ca.key 4096

3、通过CA的key生成CA证书

1
openssl req -new -x509 -days 36500 -key ca.key -sha256 -out ca.crt

4、创建服务端私钥

1
openssl genrsa -out server.key 4096

5、创建CSR文件

1
openssl req -subj "/CN=服务器公网IP地址" -sha256 -new -key server.key -out server.csr

6、配置name,将Docker守护程序密钥的扩展使用属性设置为仅用于服务器身份验证

1
2
echo subjectAltName = IP:你的服务器公网ip,IP:0.0.0.0 >> extfile.cnf
echo extendedKeyUsage = serverAuth >> extfile.cnf

7、使用根证书签名,生成server.crt

1
2
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out server.crt -extfile extfile.cnf

8、同理生成client公私钥即可

1
2
3
4
5
openssl genrsa -out client.key 4096
openssl req -subj '/CN=client' -new -key client.key -out client.csr
echo extendedKeyUsage = clientAuth > extfile-client.cnf
openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out client.crt -extfile extfile-client.cnf

9、把相关证书移动到docker目录下

1
cp server.*  /etc/docker/ && cp ca.key /etc/docker/

10、修改docker配置文件

1
vi /usr/lib/systemd/system/docker.service
1
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.crt --tlscert=/etc/docker/server.crt --tlskey=/etc/docker/server.key -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

11、重载docker

1
systemctl daemon-reload && service docker restart