本地pycharm通过ssh方式远程连接服务器(Ubuntu)上的docker容器,搭建开发环境。实现功能:将环境依赖打包成docker镜像,并在远程服务器中启动容器(启动时做好端口映射和文件夹挂载),通过本地pycharm的ssh加载远程docker容器中的环境解释器,实现本地prcharm开发的代码能同步到容器中和远程服务器中。
1 构建docker镜像(在本地电脑)
1.1 拉取Ubuntu22.04基础镜像
在dockerhub中拉取Ubuntu22.04的docker镜像,需要外网,参考链接如下:
https://hub.docker.com/r/homebrew/ubuntu22.04?uuid=C4C11E31-4AED-4366-88D0-5CCB49FAD7E8
可在windows(开墙)的docker desktop上拉取
1.2 构建开发环境docker镜像
制作Docker镜像,该镜像的Dockerfile文件如下:
其中同目录下放requirements.txt文件
# 使用基础镜像
# 使用基础镜像
FROM homebrew/ubuntu22.04:latest
USER root
# 设置工作目录
WORKDIR /app
# 复制 requirements.txt 到容器内
COPY requirements.txt .
# 安装 Python 和 pip
RUN apt-get update && apt-get install -y python3 python3-pip
RUN pip3 install --no-cache-dir -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package
创建docker镜像
docker build -t my-ubuntu-python .
构建完成后,docker images
命令查看docker镜像
打包docker镜像到本地
docker save -o my-ubuntu-python.tar my-ubuntu-python
将打包好的本地docker镜像包上传到服务器
2 ubuntu服务器加载镜像并启动容器
2.1 加载镜像
进入Ubuntu服务器
加载docker镜像
sudo docker load -i my-ubuntu-python.tar
查看docker镜像(以我此前加载的为例,依赖包较多,所以文件大)
2.2 启动容器
docker run -p 10022:22 -it -d --name=my-ubuntu-python -v "主机共享路径":"容器映射路径" my-ubuntu-python /bin/bash
2.3 进入容器
docker exec -it my-ubuntu-python /bin/bash
2.4 安装ssh
apt-get update
apt-get install openssh-server
apt-get install vim
2.5 修改配置文件
vim /etc/ssh/sshd_config
将PermitRootLogin prohibit-password
修改为PermitRootLogin yes
并去除注释
2.6 创建容器root密码
passwd root
2.7 重启ssh
service ssh restart
3 pycharm连接容器
3.1 ssh映射文件
tool ->Deployment->Configuration
添加SFTP服务,设置主机ip,填写映射端口,配置路径映射地址
3.2 加载容器中的环境解释器
pycharm右下角,add New interpreter->on SSH,输入连接信息,其中host为服务器的ip,如下图,
最后一步,选择System Interpreter,配置映射路径,最后点击create
参考链接
https://blog.****.net/qq_38236744/article/details/114676794