Python调用Docker API远程访问Linux下的Docker

  • 客户端,Windows,Python 3.5,PyCharm
  • 服务器端,CentOS7.2,Docker 18.09.0

一、docker开放远程连接,修改/usr/lib/systemd/system/docker.service文件。

vim /usr/lib/systemd/system/docker.service 

在文件中找到[service]

[Service]  
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock  

二、修改完后,docker需要重新读取配置文件,并重启docker服务。

 systemctl daemon-reload
 systemctl restart docker

三、开启docker远程服务连接端口,注意本机系统是CentOS7。

firewall-cmd --zone=public --add-port=2375/tcp --permanent    
firewall-cmd --reload
#可通过下面这句命令查看是否开启了2375/tcp。
firewall-cmd --list-all 

在这里插入图片描述
四、PyCharm中安装docker

pip install docker

在setting中查看是否安装了docker,没有的话在右侧的+号中搜索后Install package添加。
在这里插入图片描述
五、测试连接

import docker
import json
client = docker.DockerClient(base_url='tcp://192.168.102.11:2375')
cls = client.containers.run("ubuntu", "echo hello world")

在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这个问题我可以回答。首先,将你的网页和FastAPI后端API放在同一个Docker容器中是不太好的做法,因为这样会使容器变得臃肿、难以管理和扩展。因此,你最好将它们分开放在不同的容器中。具体的步骤如下: 1. 编写Dockerfile文件,用于构建FastAPI后端APIDocker镜像。你可以在Dockerfile文件中安装依赖、拷贝代码文件等。例如,Dockerfile文件可能如下所示: ``` FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY ./app ./app ``` 2. 在你的FastAPI项目根目录下创建一个`requirements.txt`文件,用于指定项目所需的Python依赖库,例如: ``` fastapi==0.63.0 uvicorn==0.13.4 ``` 3. 构建Docker镜像。在终端中运行以下命令: ``` docker build -t my-fastapi-app . ``` 这将构建一个名为`my-fastapi-app`的Docker镜像。 4. 再编写一个Dockerfile文件,用于构建streamlit前端网页的Docker镜像,例如: ``` FROM python:3.7 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["streamlit", "run", "app.py"] ``` 5. 在你的streamlit项目根目录下创建一个`requirements.txt`文件,用于指定项目所需的Python依赖库,例如: ``` streamlit==0.74.1 ``` 6. 构建Docker镜像。在终端中运行以下命令: ``` docker build -t my-streamlit-app . ``` 7. 启动Docker容器。在终端中运行以下命令: ``` docker run -d --name my-fastapi-container my-fastapi-app docker run -d --name my-streamlit-container -p 8501:8501 --link my-fastapi-container:my-fastapi-container my-streamlit-app ``` 这将启动两个Docker容器,一个用于运行FastAPI后端API,另一个用于运行streamlit前端网页。注意,我们在启动streamlit容器时使用了`--link`参数,将FastAPI容器链接到streamlit容器中,这样streamlit容器就可以访问FastAPI容器。同时,我们还使用了`-p`参数将streamlit容器的8501端口映射到主机的8501端口上,这样我们就可以通过浏览器访问streamlit网页了。 这就是将你的网页和FastAPI后端API使用Docker部署到服务器上的步骤。希望能帮助到你!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值