结合Pycharm的Docker运行插件,实现在本地连接远程Docker,使用Dockerfile构建后在指定机器上运行,简化开发部署的操作。
开启Docker的Remote API访问
Docker默认没有开启remote api, 需要进行配置
Docker常用端口
端口 | 作用 |
---|---|
2375 | 未加密的docker socket,远程root无密码访问主机 |
2376 | tls加密套接字,很可能这是您的CI服务器4243端口作为https 443端口的修改 |
2377 | 群集模式套接字,适用于群集管理器,不适用于docker客户端 |
5000 | docker注册服务 |
4789和7946 | 覆盖网络 |
开启访问
使用命令vi /usr/lib/systemd/system/docker.service
,配置远程访问
将ExecStart修改为以下内容:
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
重启docker
systemctl daemon-reload
systemctl restart docker
验证是否开启成功
[root@centeros ~]# docker -H tcp://10.10.10.112:2375 version
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:46:54 2020
OS/Arch: linux/amd64
Experimental: false
...
配置Pycharm
打开运行/调试设置
新增Docker运行指令
注: 若没有这个,请自行安装Pycharm专业版
连接Docker并配置相关参数
连接Docker
编写刚刚打开docker remote api的机器地址, 连接成功后点击确定
编写Dockerfile相关配置
根据需要自行填写相关配置
执行
查看远程服务器docker 列表
[root@centeros ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1139722d8dab 51cc85ed3dc7 "/usr/bin/supervisor…" 7 seconds ago Up 5 seconds 0.0.0.0:5000->5000/tcp flask_template
[root@centeros ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
flask_template latest 82e77d79f134 41 seconds ago 1.01GB
注意
- 在修改代码想重新发布部署时,直接重新运行即可。
- 无需操作此处,否则可能会出现,容器删除,但运行进程未停止,继续占有端口的情况