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

参考自:

        1.最详细ubuntu安装docker教程

        2.使用docker搭建python环境

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

在命令行中运行:

sudo apt-get update

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

安装docker依赖

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镜像
docker pull python:3.8.6

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

txt文件名称可以随意写

touch requirements.txt

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

创建Dockerfile

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

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镜像为基础,添加依赖库新建一个镜像

docker build -t python3.8:server_env .

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

sudo docker images

 

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

搭建test_env容器

docker run -id --name=test_env python3.8:server_env /bin/sh

 查看容器运行状态

sudo docker ps -a

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

docker exec -it -u 0 test_env  /bin/sh

进入后输入命令进行查看

pip list

 

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

pip install 依赖包==版本

 

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

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容器中
 

运行成功后查看状态

sudo docker ps -a

docker的一些其他命令

docker start 容器名
#容器开始运行
docker stop 容器名
#容器停止运行
docker kill 容器名
#容器关闭
docker rm 容器名
#容器删除

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/262212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flink使用sql-client-defaults.yml无效

希望在flink sql脚本启动时自动选择catalog,减少麻烦。于是乎配置sql-client-defaults.yaml: catalogs:- name: hive_catalogtype: icebergcatalog-type: hiveproperty-version: 1cache-enabled: trueuri: thrift://localhost:9083client: 5warehouse: …

【Docker-5】镜像编排

Dockerfile语法 制作apache镜像 httpd.service 文件路径:/lib/systemd/system/httpd.service [rootdocker-0002 ~]# mkdir apache [rootdocker-0002 ~]# cd apache拷贝动态页面到docker-0002的/root/apache/ [rootecs-proxy ~]# scp /root/5/public/info.php 192.…

Unity中的导航系统

NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。导航时,只需要给导航物体挂载导航组建,导航物体便…

华为安防监控摄像头

华为政企42 华为政企 目录 上一篇华为政企城市一张网研究报告下一篇华为全屋wifi6蜂鸟套装标准

uniapp中使用封装步骤条组件

针对步骤条封装完终于清清楚楚啦 先看效果&#xff1a; 附上代码&#xff1a;使用可直接复用&#xff1a;数据是写在了当前组件中&#xff0c;如有必须&#xff0c;可以使用其中的props传值stepInfos传递相应的数据&#xff0c;根据steps步数就可以控制走到哪一步啦 <temp…

AOP springboot

1. 2. Around(“execution(* com.example.demo.controller..(…))”) 代表所有的类下面所有的方法任意参数 3.

【IntelliJ IDEA】打开项目Git突然无法识别解决方案

这个问题也是我今天突然偶尔遇到的&#xff0c;当时没在意&#xff0c;项目打开之后又关闭&#xff0c;后来很久才又打开&#xff0c;发现项目明明有git版本控制的&#xff0c;咋突然开发工具右下角没有标识了&#xff0c;然后检查了一下git配置还报错了。 其实从图上我们可以看…

腾讯云发布升级版金融音视频解决方案,提供全新架构、安全和特性

远程银行、视频尽调、全媒体客服、路演直播……近年来&#xff0c;音视频技术支撑下的非接触式金融服务&#xff0c;成为了金融机构数字化转型和探索服务创新的重要方向。 12月21日&#xff0c;腾讯云正式发布升级版金融级音视频解决方案。新方案在架构、安全和特性上进行全面…

11 Vue3中v-bind绑定动态样式和动态样式类

概述 v-bind指令可以说是Vue3中最常用的指令之一&#xff0c;使用v-bind&#xff0c;我们几乎能够给任何实现动态的绑定比值。 这里&#xff0c;我们主要演示以下&#xff0c;通过v-bind动态绑定CSS样式。 基本用法 我们创建src/components/Demo11.vue&#xff0c;在这个组…

CSS:元素显示模式与背景

CSS&#xff1a;元素显示模式与背景 元素显示模式什么是元素显示模式块级元素 block行内元素 inline行内块元素 inline-block元素显示模式对比元素显示模式转换 display 背景背景颜色 background-color背景图片 background-image背景平铺 background-repeat背景图片位置 backgr…

当下流行的直播技术demo演示

nginx-http-flv-module&#xff08;更新不是很频繁&#xff09; SRS: https://ossrs.net/lts/zh-cn/&#xff08;独立官网&#xff0c;目前最新稳定版version5&#xff09; 基于SRS搭建直播demo演示&#xff1a; 一、搭建流媒体服务器 参见官网&#xff1a;https://ossrs.ne…

【已解决】vs2015下c++对sqlite的操作

本博文源于笔者操作sqlite3&#xff0c;借鉴了很多文章的思路&#xff0c;这里并整理了c常用的对数据库的操作供大家点赞收藏以后备用。包含了&#xff1a;c对sqlite3的创建数据库、创建数据表、写入数据表、读取数据表、删除数据表。也包括了最基础的让c运行sqlite3.内容供读者…

OV通配符

OV通配符主要功能是可以保护主域名及下一级域名无限制的使用&#xff0c;所以通配符可以省钱而且方便管理&#xff0c;适用于各种环境及服务器&#xff0c;凡主流的三大机构签发的证书都可以符合兼容性99%&#xff0c;并且可以支持等保认证&#xff0c;分别是&#xff1a;DigiC…

100GPTS计划-AI学术AcademicRefiner

地址 https://chat.openai.com/g/g-LcMl7q6rk-academic-refiner https://poe.com/AcademicRefiner 测试 减少相似性 增加独特性 修改http://t.csdnimg.cn/jyHwo这篇文章微调 专注于人工智能、科技、金融和医学领域的学术论文改写&#xff0c;秉承严格的专业和学术标准。 …

rtsp视频在使用unity三维融合播放后的修正

1 rtsp 接入 我们使用unity UE 等三维渲染引擎中使用c编写插件来接入rtsp 视频。同时做融合的时候&#xff0c;和背景的三维颜色要一致&#xff0c;这就要使用视频融合修正技术。包括亮度&#xff0c;对比度&#xff0c;饱和度的修正。在单纯颜色上的修正可以简单使用rgb->…

逻辑回归(LR,Logistic Regression)算法 简介

逻辑回归&#xff08;LR&#xff0c;Logistic Regression&#xff09;算法 当线性回归的预测结果&#xff0c;由于受到个别极端数值的影响而不准的时候, 可以用逻辑回归来解决. 逻辑回归模型的输出只能在 0 到 1 之间&#xff0c;也就是表达一个事件会发生的概率&#xff0c;…

从0开始学Git指令

从0开始学Git指令 因为网上的git文章优劣难评&#xff0c;大部分没有实操展示&#xff0c;所以打算自己从头整理一份完整的git实战教程&#xff0c;希望对大家能够起到帮助&#xff01; 初始化一个Git仓库&#xff0c;使用git init命令。 添加文件到Git仓库&#xff0c;分两步…

Vue.js 教程

Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09; 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 阅读本教程前&#xff0c;您需要了解的…

万德高科携手航天科技AIRIOT打造智慧能碳管理平台, 助力碳达峰碳中和

“十四五”时期&#xff0c;我国生态文明建设进入了以降碳为重点战略方向、推动减污降碳协同增效、促进经济社会发展全面绿色转型、实现生态环境质量改善由量变到质变的关键时期。“实施数字化赋能行动”&#xff0c;聚焦能源管理、节能降碳、低碳能力等典型场景&#xff0c;推…

node实现简单的数据爬虫

前言 我使用的是墨迹天气的页面&#xff0c;因为这个使用的链接简单 页面结构简单并且大都是文字形式 第一步 打开墨迹天气网址 随便点开一个页面 点击F12或者鼠标右键点击检查 查看页面的信息 分析页面内容 使用文字所在的class和标签来定位 编写代码 配置express环境 …