使用Pycharm调用Docker中的Python解释器

config管理Docker配置

container管理容器

context管理上下文

image管理图像

manifest管理Docker映像清单和清单列表

network管理网络

node管理Swarm节点

plugin管理插件

secret管理Docker机密

service管理服务

stack管理Docker堆栈

swarm管理swarm

系统管理Docker

trust管理对Docker镜像的信任

volume管理卷


命令:

attach将本地标准输入、输出和错误流附加到正在运行的容器

build从Dockerfile构建映像

commit根据容器的更改创建新映像

cp在容器和本地文件系统之间复制文件/文件夹

create创建一个新容器

diff检查对容器文件系统上的文件或目录的更改

events从服务器获取实时事件

exec在运行容器中运行命令

export将容器的文件系统导出为tar存档

history显示图像的历史记录

images列出图像

import从tarball导入内容以创建文件系统映像

info显示系统范围的信息

inspect返回Docker对象的低级信息

kill杀死一个或多个正在运行的容器

load从tar存档或STDIN加载图像

login登录Docker注册表

logout从Docker注册表注销

logs获取容器的日志

pause暂停一个或多个容器中的所有进程

port列出容器的端口映射或特定映射

ps列出容器

pull从注册表中提取图像或存储库

推送将图像或存储库推送到注册表

重命名重命名容器

restart重新启动一个或多个容器

rm移除一个或多个容器

rmi删除一个或多个图像

run在新容器中运行命令

save将一个或多个图像保存到tar存档(默认情况下流式传输到STDOUT)

search在Docker Hub中搜索图像

start启动一个或多个停止的容器

stats显示容器资源使用情况统计信息的实时流

stop停止一个或多个正在运行的容器

标记创建引用SOURCE_IMAGE的标记TARGET_IMAGE

top显示容器的运行进程

取消暂停取消暂停一个或多个容器中的所有进程

更新更新一个或多个容器的配置

version显示Docker版本信息

利用Pycharm远程使用Docker中的Python环境一共分为4步:
准备拥有Python环境的Docker
给Docker安装ssh-server并生成新的镜像
运行新镜像,对外开放ssh端口
Pycharm连接Docker中的解释器

拉取一个3.7.5的镜像

docker pull python:3.7.5

等待下载完成后,可以使用以下命令验证镜像是否成功安装:

docker images


您将在镜像列表中看到python仓库,标签为3.7.5的镜像。

启动一个镜像并创建一个容器,可以使用docker run命令。以下是启动Python 3.7.5镜像并创建容器的示例命令:

docker run -it --name my_python_container python:3.7.5

这个命令的含义是:

-it:以交互式模式运行容器,并将终端连接到容器的标准输入输出。

--name my_python_container:为容器指定一个名称,这里将容器命名为my_python_container,您可以根据需要自行更改。

python:3.7.5:要运行的镜像名称和标签。
运行上述命令后,Docker将创建一个基于Python 3.7.5镜像的容器,并将您连接到容器的终端。您可以在容器中执行Python程序或运行其他相关命令。
如果您希望在容器中执行一个Python脚本文件,可以使用以下命令:

plaintext

docker run -it --name my_python_container python:3.7.5 python your_script.py

获取镜像

root@ubuntu-acloud:~# docker ps

CONTAINER ID   IMAGE                 COMMAND        CREATED       STATUS       PORTS                                                           NAMES

4a44a271cfb1   python:3.7.5          "python3"      5 hours ago   Up 4 hours                                                                   python_docker

启动容器


docker start 4a44a271cfb1

进入镜像


root@ubuntu-acloud:~# sudo docker exec -it python_docker /bin/bash

此时应该已经在容器中了,安装openssh-server

apt update
apt install openssh-server -y
root@4a44a271cfb1:apt update

root@4a44a271cfb1:apt install openssh-server -y

启动ssh服务

service ssh start  # 输出[ok] Starting OpenBSD Secure Shell server: sshd.即为成功

查看ssh服务状态

service ssh status

配置ssh登录密码,此处密码设置为“1237894560”,用户名默认为“root”

终端输入以下命令

passwd
# Enter new UNIX password: 输入密码1237894560
# Retype new UNIX password:再次输入密码1237894560
# passwd: password update successfully 密码设置成功

安装编辑器

apt update
apt install nano

删除编译器的方法为 apt remove nano

安装vim编辑器

apt update
apt install vim

删除 vim 编辑器的方法 apt remove vim

编辑配置文件

通过nono编辑器 对配置文件进行修改
nano /etc/ssh/sshd_config
或
vim /etc/ssh/sshd_config

要通过命令修改/etc/ssh/sshd_config配置文件中的PermitRootLogin和UsePAM选项,可以使用以下命令:

```shell

sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config

这些命令使用sed编辑器来替换文件中的相应行。第一条命令将注释的PermitRootLogin行替换为PermitRootLogin yes,以允许root用户通过SSH登录。第二条命令将UsePAM行替换为UsePAM no,以禁用PAM身份验证。
完成后,记得重新启动SSH服务以使更改生效:

重新启动SSH服务


service ssh restart

请注意,在修改配置文件之前,最好先备份/etc/ssh/sshd_config文件,以防出现意外情况。

创建用来挂载项目的文件夹

目的:可以省略,自定义一个用来挂载项目的目录,之后用
```shell
cd /home
mkdir PythonProject

提交为新的镜像

到此,Docker容器中的ssh-server就已经全部配置成功了,下面我们将该容器提交为新镜像,留在后面使用。
退出容器

exit

查看系统中所有的容器

sudo docker ps -a

将刚才的容器提交为新镜像(python_env为刚才的容器名,也可以写容器ID)


sudo docker commit -a "lifan" -m "add ssh, passwd=1237894560" python_env python_env_ssh:1

查看新的容器

sudo docker images

运行新的镜像

sudo docker run -id --name paddle_docker_ssh -p 7061:22 -p 5100:5100 -v /home/lifan/Python_SSH_Project:/home/Python_Project paddle_docker_ssh:1
sudo docker run -id --name my_python_container -p 7061:22 -p 5100:5100 -v /home/lifan/Python_SSH_Project:/home/Python_Project my_python_container_ssh:1

重启服务器

sudo reboot

查询正在运行的5000 端口

lsof -i :5000
kill ID 结束xxId 的进程

安装sudo

apt-get install sudo

安装lsof

sudo apt update
sudo apt install lsof

检查端口是否运行状态

lsof -i :5000

关闭 防火墙

检测防火墙是否为启用状态
sudo ufw status
检查 防火墙规则
sudo ufw show added
禁用防火墙

sudo ufw disable

启用防火墙

sudo ufw enable

获取容器的详细信息

使用命令docker inspect <容器ID>获取容器的详细信息。
docker inspect 6e86250d065b

重启docker

sudo systemctl restart docker

启用docker

sudo systemctl start docker

进入python_env_ssh镜像

docker exec -it python_env_ssh /bin/b

启动ssh服务

service ssh start  # 输出[ok] Starting OpenBSD Secure Shell server: sshd.即为成功

查看ssh服务状态

service ssh status

重启服务器后需要操作的步骤

重启镜像

docker restart d5bc046154c8h

启动容器

docker start ###   启动容器
docker start 6e86250d0
### 进入容器
```python
docker exec -it python_env_ssh /bin/bash

启动ssh服务

service ssh start  # 输出[ok] Starting OpenBSD Secure Shell ser
r: sshd.即为成功

查看ssh服务状态

service ssh status

docker inspect 6e86250d065b --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'

获取解释器路径

import sys
print(sys.executable)

安装python库 如果是在虚拟环境里面 需要先激活虚拟环境

例如:虚拟环境为 /root/.virtualenvs/docker_ssh/bin/activate
source /root/.virtualenvs/docker_ssh/bin/activate
激活后状态为:(docker_ssh) root@35008d5132ee:/#  在激活的目录下进行pip

(docker_ssh) root@35008d5132ee:/# 

linux服务器中移动数据到docker镜像中指定位置


linux服务器的"densenet_lite_136-fc-onnx.zip"文件复制到运行中的Docker容器中的"/root/.cnocr/2.2/"目录下:
```python
docker cp densenet_lite_136-fc-onnx.zip da7fe9add164:/root/.cnocr/2.2/

其中,”densenet_lite_136-fc-onnx.zip”是linux的路径,”da7fe9add164”是Docker容器的ID或名称,”/root/.cnocr/2.2/“是容器中目标目录的路径。
请确保在运行命令前已经正确启动并进入了目标Docker容器。

root@35008d5132ee

/.cnstd/1.2
docker cp ch_PP-OCRv3_det_infer.onnx 35008d5132ee:/root/.cnstd/1.2/



docker save -o /root/my_python_container_ssh.tar my_python_container_ssh:1

  目录