场景介绍

很多时候我们部署一个东西到服务器上的时候,难免会污染已有环境,尤其某个东西比较复杂我们需要反复测试时

此时我们很自然的想到,在服务器上部署一个容器解决问题,如果是正常流程我们应该写Dockerfile构建容器,但是我们想更快,更方便

思路很简单,启动一个CentOS7镜像,如有必要这个镜像我们甚至能够直接启动到生产服务器上去,这个镜像一般暴露2个端口足够,一个用来SSH通信,一个对外提供自身的服务

然后我们借助PyCharm等专业开发工具,远程连接到这个容器里(通过SSH协议即可),这样PyCharm能够自动检测当前环境使用的是容器,书写代码能够自动上传,缺少什么包我们登录到容器里自行安装,完全无污染,一切调试完毕后,docker commit xxx把运行中的容器直接固化成镜像

操作步骤

启动容器

docker run --name stest -d \
-p 30022:22 -p 30080:80 \
--env TZ='Asia/Shanghai' \
--env LANG="en_US.UTF-8" \
--env LC_ALL="en_US.UTF-8" \
daocloud.io/library/centos:7.8.2003 tail -F /tmp/tmp.txt

docker exec -it stest bash

配置SSH服务

参见拙文 容器配置SSH服务

注意规避容器常见的使用错误:启动命令一定要放在前台

在容器内安装python3 (可选)

CentOS7 yum 安装 pip3 和 python3

Supervisor进程管理(可选)

Supervisor配合容器使用(包含固化容器成镜像的步骤)

PyCharm连接

pycharm调用docker容器环境 pycharm使用docker_docker


pycharm调用docker容器环境 pycharm使用docker_docker_02


pycharm调用docker容器环境 pycharm使用docker_python_03


pycharm调用docker容器环境 pycharm使用docker_docker_04


pycharm调用docker容器环境 pycharm使用docker_pycharm调用docker容器环境_05


pycharm调用docker容器环境 pycharm使用docker_服务器_06


pycharm调用docker容器环境 pycharm使用docker_python_07

愉快本地开发

通过上面的配置我们即可愉快的在本地写代码,点击pycharm的运行也是调用远程服务器上(即docker环境)的python来运行,缺什么包就到服务器上安装,一切调试完毕后直接docker commit xxx把容器固化成镜像,拿到生产环境跑起来