在ubuntu上部署与使用docker(python)

news2024/11/23 22:07:48
  • 1.安装Docker

首先,更新现有的包列表

sudo apt update

接下来安装一些允许童HTTPS才能使用的软件包:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

然后将官方Docker存储库的GPG秘钥添加到您的系统

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将Doker存储库添加到APT源

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

接下来,使用新添加的repo源中的Docker包更新包数据库

sudo apt update

确保docker repo安装而不是默认的Ubunturepo:

apt-cache policy docker-ce

虽然Docker的版本号可能不同,但您还是会看到这样的输出:

docker-ce:
Installed: (none)
Candidate: 18.03.1~ce~3-0~ubuntu
Version table:
18.03.1~ce~3-0~ubuntu 500
500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages

最后,安装Docker:

sudo apt install docker-ce

现在应该安装好Docker了,检查它是否正在运行:

sudo systemctl status docker

输出应类似于以下内容,表明该服务处于工作状态:

● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-07-05 15:08:39 UTC; 2min 55s ago
Docs: https://docs.docker.com
Main PID: 10096 (dockerd)
Tasks: 16
CGroup: /system.slice/docker.service
├─10096 /usr/bin/dockerd -H fd://
└─10113 docker-containerd --config /var/run/docker/containerd/containerd.toml
  • 2.使用Docker命令

查看所有可用子命令 请输入:

docker 

 attach      Attach local standard input, output, and error streams to a running container
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Return low-level information on Docker objects

查看特定命令,请输入:

docker docker-subcommand --help

要查看有关Docker的系统信息 请使用:

docker info
  • 4.使用Docker镜像

Dock容器是从Docker镜像构建的,默认情况下,Docker从Docker Hub中提取镜像,这是一个有Docker管理的Docker镜像市场, 这是Dock的让项目背后的公司。任何人都可以在Docker Hub上托管他们的Docker镜像,所以您只需要将您的应用程序和Linux放在那边托管即可

要检查 新是否可以从Docker Hub访问和下载镜像,请输入:

docker run hello-world

输出下面的内容Docker正常工作:

latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:6e8b6f026e0b9c419ea0fd02d3905dd0952ad1feea67543f525c73a0a790fefb
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
......

您可以使用docker带子命令的search命令搜索Docker Hub上可用的镜像。例如,要搜索Ubuntu映像,请输入:

docker search ubuntu

该脚本将对Docker Hub进行抓取,并返回名称与搜索字符串匹配的所有镜像的列表。输出将类似于:

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 7917 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 193 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 156 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 93 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 87 [OK]
neurodebian NeuroDebian provides neuroscience research s… 50 [OK]
ubuntu-debootstrap debootstrap --variant=minbase --components=m… 38 [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 36 [OK]
nuagebec/ubuntu Simple always updated Ubuntu docker images w… 23 [OK]
tutum/ubuntu Simple Ubuntu docker images with SSH access 18
i386/ubuntu Ubuntu is a Debian-based Linux operating sys… 13
ppc64le/ubuntu Ubuntu is a Debian-based Linux operating sys… 12
1and1internet/ubuntu-16-apache-php-7.0 ubuntu-16-apache-php-7.0 10 [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10 ubuntu-16-nginx-php-phpmyadmin-mariadb-10 6 [OK]
eclipse/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 6 [OK]
codenvy/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 4 [OK]
darksheer/ubuntu Base Ubuntu Image -- Updated hourly 4 [OK]
1and1internet/ubuntu-16-apache ubuntu-16-apache 3 [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4 ubuntu-16-nginx-php-5.6-wordpress-4 3 [OK]
1and1internet/ubuntu-16-sshd ubuntu-16-sshd 1 [OK]
pivotaldata/ubuntu A quick freshening-up of the base Ubuntu doc… 1
1and1internet/ubuntu-16-healthcheck ubuntu-16-healthcheck 0 [OK]
pivotaldata/ubuntu-gpdb-dev Ubuntu images for GPDB development 0
smartentry/ubuntu ubuntu with smartentry 0 [OK]
ossobv/ubuntu
...

在OFFICIAL列中,带OK标记的表明这个镜像由公司构建和支持。其他镜像则由个人创建。确定要使用的映像后,可以使用命令pull将其下载到计算机。

执行以下ubuntu命令将官方映像下载到您的计算机:

docker pull ubuntu

要查看已下载到计算机的镜像,请输入:

docker images

输出应类似于以下内容:

REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 113a43faa138 4 weeks ago 81.2MB
hello-world latest e38bc07ac18e 2 months ago 1.85kB
  • 5.运行Docker容器

让我们使用Ubuntu 的镜像运行一个 容器 。-i和-t子命令的意思是为您提供一个对容器的交互shell访问:

docker run -it ubuntu

展示如下:

root@4af22e88dc79:/#

  • 6.管理Docker容器

查看服务器中的docker容器:

docker ps

输出类似:

CONTAINER ID IMAGE COMMAND CREATED

查看所有容器运行状态

docker ps -a

输出结果为:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4af22e88dc79 ubuntu "/bin/bash" 3 minutes ago Exited (0) About a minute ago hardcore_maxwell
bc48dc240562 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago practical_lehmann

查看最新的容器:

docker ps -l

输出结果:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4af22e88dc79 ubuntu "/bin/bash" 4 minutes ago Exited (0) 2 minutes ago hardcore_maxwell

启动容器,使用docker start ,后跟容器id,命令入下:

docker start 4af22e88dc79

使用docker ps 查看状态:

oot@iZm5e97gc9tpdsp3b9qmhkZ:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4af22e88dc79 ubuntu "/bin/bash" 6 minutes ago Up 48 seconds hardcore_maxwell

要停止正在运行的容器 docker stop 后跟容器ID或者名称 hardcore_maxwell

docker stop hardcore_maxwell

删除容器 docker rm 容器名

docker rm practical_lehmann
  • 使用Docker 运行python程序

创建 dockerpyhton文件并进入文件

mkdir dockerpyhton --》 cd dockerpyhton

  1. 创建文件名为demo.py

from random import randint
min_number = int(input("请输入最小值"))
max_number = int(input("请输入最大值"))
if( max_number < min_number ):
print("输入有误")
else:
rnd_number = randint(min_number,max_number)
print(rnd_number)
  1. 编写dockerfile文件

文件名为:

FROM python
WORKDIR /demo
COPY . /demo
CMD ["python","demo.py"]
  1. 制作镜像

docker build -f ./Dockerfile -t docker_python:1.0 .
# docker_python:1.0 为镜像名
  1. 查看镜像并启动容器

docker images
docker run -it 46e1851ea636

Dockerfile 可以指定Python环境和安装requments.txt 使用build 命令来创建镜像 然后docker run启动镜像

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于 C# 引用参数和值参数

关于 C# 引用参数和值参数 C# 数据类型分为值类型和引用类型&#xff0c;两者的区别在于值类型的数据存储在栈中&#xff0c;而引用类型的数据存储在堆中&#xff0c;但是栈中会存放指向存储数据的堆的位置。 传递参数时&#xff0c;传递的是数据栈中的值&#xff0c;实参将数…

高等数学——一元函数微分学

文章目录导数与微分概念几何意义连续、可导、可微之间的关系求导法则基本初等函数的导数公式有理运算法则复合函数求导法奇偶性和周期性隐函数求导反函数求导参数方程求导对数求导法高阶导数概念常用的高阶导数公式微分中值定理和导数的应用微分中值定理导数的应用函数的单调性…

巾帼绽芬芳 一起向未来(下篇)

编者按&#xff1a;为了隆重纪念纪念“三八”国际妇女节113周年&#xff0c;快来与你全方位、多层次分享交流“三八”国际妇女节的前世今生。分上篇&#xff08;节日简介、节日发展和节日意义&#xff09;、中篇&#xff08;节日活动宗旨和世界各国庆祝方式&#xff09;和下篇&…

Linux学习第二十节-NTP网络时间协议

1.概念 NTP(Network Time Protocol&#xff09;网络时间协议基于UDP用于网络时间同步的协议&#xff0c;使网络中的计算机时钟同步到UTC(世界统一时间)&#xff0c;再配合各个时区的偏移调整就能实现精准同步对时功能。 chrony是网络时间协议NTP的实现方式&#xff0c; Chron…

three.js 纹理贴图的使用

刚刚入门的小伙伴请先查看 three.js 基础认识与简单应用 本文章中的两个注意点&#xff0c;下面也有提到&#xff0c;分别是&#xff1a; 1、 vue项目中使用的贴图路径-->需要把 static文件夹 放到 public文件夹下,并使用 static 开头的绝对路径。 2、使用环境遮挡贴图时&a…

Air780E|阿里云|AT命令|物联网|三元组|鉴权|算法|密钥生成-阿里云物联网手动接入步骤

基础资料基于Air780E开发板&#xff1a;Air780E文档中心简介&#xff1a;AT开发探讨重点本系列主要探讨MQTT手动接入腾讯云物理网平台的基本操作及手动鉴权步骤、信息订阅及发布的基本原理。参考阅读&#xff1a;物联网模组AT命令接入云平台&#xff08;1&#xff09;-MQTT基本…

移动硬盘怎么恢复数据?怎么恢复硬盘删除的数据

移动硬盘可以随时插上或拔下&#xff0c;小巧而便于携带的硬盘存储器&#xff0c;以较高的速度与系统进行数据传输。由于其存储空间较大&#xff0c;性价比较高&#xff0c;存储和传输数据快速简便&#xff0c;是很多职场人士必备的外置设备之一。移动硬盘怎么恢复数据&#xf…

cuda代码高效策略--b站看课的笔记

1.1 高效公式 要么增大数据量&#xff0c;要么减少每个线程的内存&#xff08;每个线程读取的数据量变少&#xff0c;每个线程的读取数据的速度变快&#xff08;转变存储方式&#xff0c;对读取慢的地方做优化–合并全局内存&#xff09;&#xff09; 1.2 合并全局内存 一个线…

电子台账:模板制作之二——行过滤(垂直过滤)

1 简介大部分情况下&#xff0c;企业数据源表格中&#xff0c;只有部分行的数据可用于电子台账。例如&#xff0c;一共100行数据&#xff0c;我们只要取得其中20行即可。如果所有数据一股脑全部导入到台账中&#xff0c;再手工删除不需要的行&#xff0c;太麻烦了&#xff0c;有…

js变量和函数提升

1、变量提升 变量提升是JavaScript 中比较“奇怪”的现象&#xff0c;它允许在变量声明之前即被访问 (仅存在于var声明变量) 注意: 1.变量在未声明即被访问时会报语法错误 2.变量在var声明之前即被访问&#xff0c;变量的值为 undefined 3.let/const声明的变量不存在变量提升…

sqli-labs通关lesson36-40

1.lesson36 union select判断注入&#xff1a;为单引号注入?id1%df-- 查数据库&#xff1a;?id-1%df union select 1,2,database()-- 2.lesson-37 报错注入判断注入&#xff1a;为单引号注入通过下方判断password为单引号注入unamez&passwdg%df -- &submitSubmit查数…

神经网络之反向传播算法(自适应梯度算法Adagrad)

文章目录自适应梯度算法&#xff08;Adagrad&#xff09;1、算法原理2、算法实现2.1 训练过程2.2 测试过程及结果3、参考源码及数据集自适应梯度算法&#xff08;Adagrad&#xff09; 自适应梯度算法&#xff08;Adaptive gradient algorithm&#xff0c;Adagrad&#xff09;与…

惊!初中生也来卷了……

大家好&#xff0c;我是良许。 前两天在抖音直播的时候&#xff0c;突然来了一位不速之客…… 他自称是初中生&#xff0c;一开始我还有点不太相信&#xff0c;直到跟他连麦&#xff0c;听到他还略带一些稚嫩的声音&#xff0c;我才知道&#xff0c;他没有骗我…… 他说他想学…

Dynamic Movement Primitives (DMP) 学习

Dynamic Movement Primitives (DMP) 学习 【知乎】Dynamic Movement Primitives介绍及Python实现与UR5机械臂仿真 1. DMP的建模过程 链接&#xff1a;Dynamic Movement Primitives介绍及Python实现与UR5机械臂仿真 - 知乎 (zhihu.com) 沙漏大佬&#xff01;&#xff01;&am…

转行软件测试需要学习哪些知识点?来来来,都给你汇总在这里啦!

都说IT互联网行业吃香&#xff0c;那么如何才能高效转行&#xff0c;习得一技之长换取心仪offer&#xff1f; 一般来说&#xff0c;0基础小白想转行到软件测试行业&#xff0c;按照如下学习逻辑肯定是错不了的&#xff1a; 1.零基础小白入门篇&#xff08;学前扫盲&#xff09…

ThinkBook15电脑开机后马上蓝屏不能使用怎么办?

ThinkBook15电脑开机后马上蓝屏不能使用怎么办&#xff1f;最近有用户使用的ThinkBook15电脑出现了开机之后屏幕蓝屏的情况。出现这个问题&#xff0c;是系统底层的故障&#xff0c;一般用户很难找出问题进行彻底解决。但是我们可以通过以下重做系统的方法来恢复电脑系统的使用…

阶段二11_面向对象高级_学生管理系统案例3

主要功能&#xff1a; 完成学生信息添加&#xff0c;修改和删除功能。 一.查看学生 思路&#xff1a; 图片&#xff1a;5_查看学生思路图.png 代码&#xff1a; StudentController[客服类中] //查找学生 private void findAllStudent() {//1.方法内部创建StudentService业…

Nacos 使用Postgresql数据库制作镜像

构建前提在 Nacos 2.2.0支持postgresql数据库基础上进行构建github地址&#xff1a;个人仓库编译打包源码mvn -Prelease-nacos clean package install -Dmaven.test.skiptrue若想跳过pmd和checkstyle检查请使用mvn -Prelease-nacos clean package install -Dmaven.test.skiptru…

Vue 3.0 组合式API 介绍 【Vue3 从零开始】

提示 在阅读文档之前&#xff0c;你应该已经熟悉了这两个 Vue 基础和创建组件。 在 Vue Mastery 上观看关于组合式 API 的免费视频。 通过创建 Vue 组件&#xff0c;我们可以将接口的可重复部分及其功能提取到可重用的代码段中。仅此一项就可以使我们的应用程序在可维护性和…

SAP ERP系统PP模块计划策略2050详解

SAP/ERP系统中面向订单生产的计划策略主要有20和50两个策略&#xff0c;这两个策略都是面向订单生产的计划策略&#xff0c;也是离散制造行业应用比较广泛的策略。它们之间最大差异就是在于20策略完全是由订单驱动&#xff0c;而50策略是预测加订单驱动&#xff0c;本文主要介绍…