ubuntu下docker安装,配置python运行环境

参考自:

1.最详细ubuntu安装docker教程

2.使用docker搭建python环境

首先假设已经安装了docker,卸载原来的docker

在命令行中运行:

bash 复制代码
sudo apt-get update

sudo apt-get remove docker docker-engine docker.io containerd runc

安装docker依赖

bash 复制代码
apt-get install ca-certificates curl gnupg lsb-release

添加Docker官方GPG密钥

复制代码
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

添加Docker的软件源:

复制代码
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

安装Docker:

复制代码
apt-get install docker-ce docker-ce-cli containerd.io
  1. 配置用户组(可选)

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:

复制代码
sudo usermod -aG docker $USER

运行docker

我们可以通过启动docker来验证我们是否成功安装。命令如下:

复制代码
systemctl start docker

安装工具

复制代码
apt-get -y install apt-transport-https ca-certificates curl software-properties-common

重启docker

复制代码
service docker restart

验证是否成功

复制代码
sudo docker run hello-world

查看版本

复制代码
sudo docker version

查看镜像,命令如下:

复制代码
sudo docker images

python容器环境的安装

拉取python镜像
bash 复制代码
docker pull python:3.8.6

在自己的目录下创建依赖库文件 requirements.txt

txt文件名称可以随意写

bash 复制代码
touch requirements.txt

通过编辑添加库名到这个文件中即可,文件中的内容类似这样的

创建Dockerfile

在server目录下创建Dockerfile文件(文件名必须是Dockerfile,没有后缀)内容如下

bash 复制代码
FROM python:3.8.6
WORKDIR /home/ubuntu/server
ADD requirements.txt /home/ubuntu/server
RUN pip install -r requirements.txt
CMD["python","run_server.py"]


# 解释
# 基于python:3.8.6这个基础镜像构建镜像
# 切换换工作空间
# 将python项目依赖包添加到镜像
# 安装依赖包
# 设置容器执行后自动执行的命令,这里的"run_server.py"是项目的执行入口

在server目录下执行镜像构建命令,以3.8.6python镜像为基础,添加依赖库新建一个镜像

bash 复制代码
docker build -t python3.8:server_env .

构建成功后会看到一个新的镜像(docker images),使用命令查看

bash 复制代码
sudo docker images

创建一个python容器并查看依赖包是否安装成功

搭建test_env容器

bash 复制代码
docker run -id --name=test_env python3.8:server_env /bin/sh

查看容器运行状态

bash 复制代码
sudo docker ps -a

进入test_env容器,并查看安装包

复制代码
docker exec -it -u 0 test_env  /bin/sh

进入后输入命令进行查看

bash 复制代码
pip list

如果存在没安装上的依赖包可以自行在test_env容器中安装

复制代码
pip install 依赖包==版本

将项目代码所在映射到容器中,这里我又创建了一个env的容器

bash 复制代码
docker run -id -v /home/ubuntu/server_env:/home/ubuntu/server -p 8765:8765 -u=root --name=test1_env python3.8:server_env python run_server.py

参数说明:

-i:表示运行容器

-t:表示容器启动后会进入其命令行

-d:守护式方式创建容器在后台运行

--name:容器名称

-p 8765:8765:端口映射,宿主机端口:python服务端口(8765)

-u=root:指定容器用户为root用户

-v /home/ubuntu/server_env:/home/ubuntu/server:将项目代码映射到python容器中

运行成功后查看状态

bash 复制代码
sudo docker ps -a

docker的一些其他命令

bash 复制代码
docker start 容器名
#容器开始运行
docker stop 容器名
#容器停止运行
docker kill 容器名
#容器关闭
docker rm 容器名
#容器删除
相关推荐
无人生还别怕2 小时前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
无足鸟ICT3 小时前
【RHCA+】agedu命令(查看磁盘使用情况)
linux
StarsGreen3 小时前
Android 启动流程详解
android·linux·单片机·嵌入式硬件
zhengfei6113 小时前
CVE-2026-98432:Linux 内核 TCP 释放后重用漏洞,CVSS 9.8 但补丁覆盖极不均衡
linux·运维·tcp/ip
叼烟扛炮4 小时前
Linux 学习笔记(六十一):网络编程毕业设计——Reactor 反应堆模式
linux·网络·笔记·学习·课程设计
xyzzklk4 小时前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
叼烟扛炮6 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
David猪大卫12 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
叼烟扛炮13 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
Ruiery14 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器