Docker配置pycharm连接
1 原理介绍
![image-20200430004434291](https://tva1.sinaimg.cn/large/007S8ZIlly1geb482a7x6j31hw0kwtg7.jpg)
2 操作 docker宿主机
# 1 配置运行远程客户端连接docker
vim /lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
将管理地址写入 /etc/profile
执行命令:echo 'export DOCKER_HOST=tcp://0.0.0.0:2376' >> /etc/profile
执行命令:source /etc/profile
重启服务
执行命令: systemctl daemon-reload && systemctl restart docker
# 2 vim /etc/docker/daemon.json
{
"hosts": ["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"]
}
systemctl daemon-reload && systemctl restart docker
# 启动会报错,因为/lib/systemd/system/docker.service和该文件的本地连接配置冲突,修改/lib/systemd/system/docker.service
vim /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
...
systemctl daemon-reload
systemctl restart docker
curl 127.0.0.1:2376/version
http://10.0.0.102:2376/version
3 修改本地pycharm配置
1 打开设置,搜索docker
2 选择TCP socket
3 填入:tcp://101.133.225.166:2376
4 Certificates folder暂时不填,Path mappings:暂时删掉
5 点击ok,在下面就能看到图形界面的管理
![image-20200430013946341](https://tva1.sinaimg.cn/large/007S8ZIlly1geb5tgp7b5j31540u0q8r.jpg)
6 选择新的解释器(使用docker的解释器)解释器---》add---》docker--》默认会选中,点击ok(稍等一会,需要连接)
![image-20200430014539434](https://tva1.sinaimg.cn/large/007S8ZIlly1geb5zl8ah6j31b80qg78g.jpg)
7 修改运行文件(可以看到目录映射,现在我们需要把代码传到宿主机的:/Users/liuqingzheng/PycharmProjects/llqz_test 路径)
![image-20200430015206937](https://tva1.sinaimg.cn/large/007S8ZIlly1geb66bermtj31bq0u00z6.jpg)
![image-20200430015434627](https://tva1.sinaimg.cn/large/007S8ZIlly1geb68vpj5aj31360scu0x.jpg)
![image-20200430015705488](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6bhmzj1j30zw0u00w7.jpg)
![image-20200430015807878](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6ckkgsdj30zt0u0gwr.jpg)
11 上传代码,在项目上右键,Deplayment--》上传
运行代码即可
![image-20200430015921932](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6dv2iv1j30wd0u0u0x.jpg)
12 也可以选择tools-->Deployment-->Automatic Upload,每次改完代码会自动上传
![image-20200430020023490](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6exqki9j313o0swu0x.jpg)
13 我们无法安装模块,所有通过Dockerfile方式构建镜像,再切换解释器为新构建的镜像
![image-20200430021738112](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6wuyj2oj31io0bi1kp.jpg)
![image-20200430021833203](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6xt458mj30ik0ogti5.jpg)
15 这样运行构建的镜像没有名字,我们可以配置,指定构建成的镜像名字
![image-20200430021945524](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6z2f1i8j30cy05o3zu.jpg)
![image-20200430022005303](https://tva1.sinaimg.cn/large/007S8ZIlly1geb6zepougj31b80u0dlm.jpg)
![image-20200430022139471](https://tva1.sinaimg.cn/large/007S8ZIlly1geb711r0ogj314z0u0wum.jpg)
最后:docker pull 的时候报错
error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/b6/b63ef4ef530f7ff2d368fb0df9c28840a285e503c8710aa29e7e1da54cbb6f54/data?verify=1588096454-x6AMkkUV0qUaOPWhqC%2FQpkcJ1RA%3D: x509: certificate has expired or is not yet valid
# 提示x509:证书已过期或尚未生效。则是系统时间错误。只要同步一下网络时间即可。同步网络时间命令:
data
yum install ntpdate -y
ntpdate ntp1.aliyun.com