Docker

16 5 月, 2024 326点热度 0人点赞 0条评论

Docker容器操作备忘。

1. 服务端配置远程访问

本小节描述如何将Docker配置为可远程访问,以使得可以通过本地电脑远程访问服务器Docker容器进行远程开发。目前服务端提供“无安全认证”、“安全认证”两种配置远程登陆的方式。

1.1 无安全认证方式

无安全认证方式不验证访客身份,凡是能够访问到服务器端口的访客,均可远程控制服务端docker。服务端通过如下配置可即可开启远程访问功能。

1.1.1 修改docker.service文件

# 修改文件"/lib/systemd/system/docker.service"
# 将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#修改为
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock

1.1.2 修改daemon.json文件

# 文件"/etc/docker/daemon.json"添加配置项
"hosts": ["0.0.0.0:2375","unix:///var/run/docker.sock"]

1.1.3 重载配置文件、重启docker

root@hostname:~# systemctl daemon-reload
root@hostname:~# systemctl restart docker

1.2 安全认证方式

安全认证方式与非安全认证方式的差异在于安全认证方式需要通过额外的步骤生成证书,访客登陆时需提供证书。服务端通过如下配置可即可开启远程访问功能。

1.2.1 生成证书

详细的生成证书的步骤可参见生成docker证书步骤中服务端配置章节。生成的证书文件一部分需放置于服务端(ca.pem、server-cert.pem、server-key.pem),另一部分需放置于客户端(ca.pem、cert.pem、key.pem)。

1.2.2 修改docker.service文件

在下述编辑操作中,--tlscacert--tlscert--tlskey分别指向服务器存储的证书文件路径。

# 修改文件"/lib/systemd/system/docker.service"
# 将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#修改为
ExecStart=/usr/bin/dockerd                \
    --tlsverify                           \
    --tlscacert=/etc/docker/ca.pem        \
    --tlscert=/etc/docker/server-cert.pem \
    --tlskey=/etc/docker/server-key.pem   \
    --containerd=/run/containerd/containerd.sock

1.2.3 修改daemon.json文件

# 文件"/etc/docker/daemon.json"添加配置项
"hosts": ["0.0.0.0:2376","unix:///var/run/docker.sock"]

1.2.4 重载配置文件、重启docker

root@hostname:~# systemctl daemon-reload
root@hostname:~# systemctl restart docker

2. 客户端配置远程访问

docker客户端支持远程访问docker服务端,VSCODE在内的很多IDE均支持远程访问docker。

3. Dockerfile文件规则

3.1.配置指令

指令 说明
FROM 指定所创建镜像的基础镜像
WORKDIR 配置工作目录

2.2.操作指令

指令 说明
RUN 运行指定命令
CMD 启动容器时指定默认执行的命令
ADD 添加内容到镜像。
COPY 复制内容到镜像。

李嘉诚

这个人很懒,什么都没留下