linux下docker容器的使用

1、根据已有镜像images创建容器

1.1、查看镜像

如果是接手的别人的项目,需要从以往的images镜像中创建新容器,使用命令查看当前机器上的docker镜像:

docker images

在这里插入图片描述

1.2、创建容器

使用docker run 根据images镜像名创建容器,命令:

docker run --name zdqm -d -p 8005:8001 -w /cytech_ai/app/ModelServer/ --env LANG=C.UTF-8 --gpus all cytech_ai_zd:1.0.4

参数解释如下:
–name zdqm:创建的一个新容器名称为zdqm
-d, --detach=false, 指定容器运行于前台还是后台,默认为false
-p 8005:8001:端口映射,外部端口为8005,docker容器内部的端口为8001,如果外部需要访问,要使用8005去访问,也可以写成一样的8001:8001这样就直接对应上。
-w /cytech_ai/app/ModelServer/:–workdir=“”, 指定容器的工作目录,也就是进入docker之后,默认的当前路径
–env LANG=C.UTF-8:表示环境
–gpus all:表示使用gpu
cytech_ai_zd:1.0.4:docker images中的镜像名称

2、使用外部镜像创建容器

2.1、从Docker仓库中拉取镜像

以最小的linux系统busybox为例,使用命令:

docker pull busybox:latest

从docker hub官方镜像仓库获取一个为busybox的镜像,latest表示最新版,并pull下载到宿主机上。

docker镜像仓库还有很多,例如:ubuntu:latest,拉取一个最新的ubuntu系统镜像

2.2、创建容器

创建容器的方法和1.2类似了,参数也是一样的

docker run --name busyboxenv busybox:latest

或者按照上面的创建方式:

docker run --name zdqm -d -p 8005:8001 -w /cytech_ai/app/ModelServer/ --env LANG=C.UTF-8 --gpus all busybox:latest

3、启动容器

3.1、查看创建的容器

使用命令:

docker ps -a

在这里插入图片描述

3.2、启动容器

使用命令:

docker exec -it 9742b17eeea7 /bin/bash

4、本地磁盘映射

在创建docker容器时,使用docker run时,加入参数-v,命令:

docker run --name rknntestsiping -it --privileged -v /cytech_ai/:/cytech_ai/ 4c873a65d2b1 /bin/bash

即:

docker run --name zdqm -d -p 8005:8001 -w /cytech_ai/app/ModelServer/ -v /cytech_ai/:/cytech_ai/ --env LANG=C.UTF-8 --gpus all cytech_ai_zd:1.0.5

这样宿主机的cytech_ai文件夹的所有文件可以在docker容器中对应的cytech_ai文件夹中访问到。

5、docker文件拷贝

5.1、同一台机器中docker容器内部文件拷贝到外部宿主机

在docker容器外,即宿主机终端使用docker cp命令:
即:

docker cp 容器id:容器内部文件路径 宿主机外部路径

例如,在上面的9742b17eeea7容器中,将cytech_ai/app/test.py文件拷贝到外部宿主机的/home/code/下:

docker cp 9742b17eeea7:cytech_ai/app/test.py /home/code/

5.2、同一台机器中外部宿主机文件拷贝到docker容器内

在docker容器外,即宿主机终端使用docker cp命令:
即:

docker cp 宿主机外部路径 容器id:容器内部文件路径 

例如,将宿主机中/home/code//test.py文件拷贝到9742b17eeea7容器的cytech_ai/app/下:

docker cp  /home/code/test.py 9742b17eeea7:cytech_ai/app/

6、打包镜像

当算法开发完成后,我们的docker容器可能会发到其他现场的计算机上进行部署,因此需要打包docker容器为一个images镜像发布。

6.1、镜像提交 commit

先将容器提交为一个镜像images,例如前面我根据images创建了一个cytech_ai_zd:1.0.4的容器,修改了代码后提交一个新的版本镜像为1.0.5

docker commit 容器id 容器新名称

命令:

docker commit 9742b17eeea7 cytech_ai_zd:1.0.5

将9742b17eeea7 这个容器提交到镜像,镜像名为cytech_ai_zd:1.0.5
在这里插入图片描述

6.2、打包镜像

使用docker save命令:

docker save -o 新镜像名称.tar 新容器名称

在宿主机终端上,选择一个文件目录,使用docker save将images打包为tar后,会在当前路径下生成一个文件:

docker save -o cytech_ai_zd-1.0.5.tar cytech_ai_zd:1.0.5

等待打包完成后,即可发布到另外一台机器部署使用。

7、加载镜像

在新的服务器终端使用:

docker load -i 镜像包名称

例如:

docker load -i cytech_ai_zd-1.0.5.tar

加载完成后,使用docker images查看images是否加载成功,找得到这个images就可以开始部署使用了,步骤转到第一步即可。

8、其他问题

1、docker创建容器后,容器自动关闭问题
原因分析:
docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出。
容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出
解决方案:
在最后加上/bin/bash就可以了。例如在上面的基础上。
docker run -it -P --name=“容器名” [镜像名] /bin/bash
docker run -dit centos /bin/bash

或者使用docker exec :

docker exec -it 9742b17eeea7 /bin/bash

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

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

相关文章

江南布衣的新商业主义

全球正经历一次商业伦理迭代,从以效率、创新、竞争、公平交易、优胜劣汰等为关键词的旧商业主义,转向商业主义和社会主义兼顾的新商业主义。 联合国全球契约组织于2004年提出的ESG正是这一商业伦理转向的产物,与传统以利润为企业考核核心指标…

中国贸易金融跨行交易区块链平台CTFU、区块链福费廷交易平台BCFT、中国人民银行贸易金融区块链平台CTFP、银行函证区块链服务平台BPBC

中国人民银行贸易金融区块链平台CTFP介绍 贸易金融的发展概况及存在的问题 1.1 贸易金融的概况 贸易金融是指商业银行在贸易双方债权债务关系的基础上,为国内或跨国的商品和服务贸易提供的贯穿贸易活动整个价值链、全程全面性的综合金融服务。伴随全球化的进程&a…

Docker安装配置

1. 安装docker-ce sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum -y install docker-ce sudo systemctl enable docker 2. 设置代理 参照:https://docs.docker.com/config/daemon/systemd/#httpht…

基于yolov5的单目测距实现与总结+相机模型+标定

写这篇文章的目的是为了总结我之前看的标定,相机模型以及单目测距的内容,如果有错误,还请不吝赐教。 参考链接: 相机模型、相机标定及基于yolov5的单目测距实现 深度学习目标检测目标追踪单目测距 单目测距代码部署(目…

【Flask开发实战】防火墙配置文件解析(二)之shell读取内容

一、前言 上一篇文章中,介绍了防火墙配置文件包含的基本元素和格式样式,并模拟了几组有代表性的规则内容,作为基础测试数据。在拿到基础测试数据后,关于我们最终想解析成的数据是什么样式的,其实不难看出,…

Dynamo设置明细表字段格式——保留小数位数

Hello大家好!我是九哥~ 今天简单分享一个API的用法,就是设置明细表的中字段的字段格式。 本次呢,主要介绍下如何通过Dynamo设置长度、面积等几种字段的格式,设置小数位数的显示,如下图: 当然了&#xf…

基于ssm的网络游戏公司官方平台设计与实现论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对网络游戏信息管理混乱,出错率高,信息安全性差…

函数递归的总结回顾

函数递归的本质就是其名字——递与归。先递出去, 再收回来。 而递归的思想就是为了让一个复杂的问题变成一个简单的问题 按照我目前的理解,函数递归有两点很重要。一个是它的限定条件,另一个就是函数体内“自调”(就是自我调用语句…

1-Flume中agent的source

Flume(1.11.0版本) 简介 概述 Flume本身是由Cloudera公司开发的后来贡献给了Apache的一套针对日志数据进行收集(collecting)、汇聚(aggregating)和传输(moving)的机制 Flume本身提供了简单且灵活的结构来完成日志数据的传输 Flume有两大版本&#x…

jQuery 选择器--获取元素

文章目录 1 jQuery 基础选择器2 层级选择器3 隐式迭代(重要)4 jQuery 筛选选择器5 jQuery 筛选方法(重点)案例--下拉菜单 6 jQuery 排他思想*案例--左右Tab栏切换 7 jQuery 链式编程 1 jQuery 基础选择器 2 层级选择器 3 隐式迭代(重要) 示例: 4 jQuery 筛选选择器…

流畅的 Python 第二版(GPT 重译)(十二)

第五部分:元编程 第二十二章:动态属性和属性 属性的关键重要性在于,它们的存在使得将公共数据属性作为类的公共接口的一部分完全安全且确实可取。 Martelli、Ravenscroft 和 Holden,“为什么属性很重要” 在 Python 中&#xff0…

前端如何一次处理十万条数据的渲染

前端如何一次处理十万条数据的渲染 一、下载第三方插件二、在入口文件引入三、示例 一、下载第三方插件 npm install --save el-table-infinite-scroll二、在入口文件引入 import ElTableInfiniteScroll from "el-table-infinite-scroll"; Vue.use(ElTableInfinite…

docker 配置国内阿里镜像源

在/etc/docker/目录下新建daemon.json文件 在文件中写入 {"registry-mirrors": ["https://jmphwhtw.mirror.aliyuncs.com"] } 以管理员身份运行命令 systemctl daemon-reload systemctl restart docker

项目中如何进行限流(限流的算法、实现方法详解)

❤ 作者主页:李奕赫揍小邰的博客 ❀ 个人介绍:大家好,我是李奕赫!( ̄▽ ̄)~* 🍊 记得点赞、收藏、评论⭐️⭐️⭐️ 📣 认真学习!!!🎉🎉 文章目录 限流的算法漏…

MFO-CNN-LSTM多输入分类预测|飞蛾扑火算法优化的卷积-长短期神经网络|Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

最新优质电商API接口,附带Python教程

接口信息 API 接口是应用程序编程接口(Application Programming Interface)的缩写。 它是一组定义了软件组件之间如何交互和通信的规则和规范。简单来说,API 接口就是让不同的软件系统能够相互“交流”和“合作”的桥梁。打个比方&#xff…

onlyoffice第一次打开特别慢的问题优化

分析问题 上传oss 找到fonts上传到oss中 更改nginx配置 找到nginx所在位置 找到ds-docservice.conf #### onlyoffice二次开发,优化fonts请求速度的问题 location ~* /8.0.0-99/fonts(.*){return https://xxxx-xxxx.cos.ap-shanghai.myqcloud.com/fonts$1?…

jQuery 基础

文章目录 1. jQuery 概述1.1 JavaScript 库1.2 jQuery 概念1.3 jQuery 优点 2. jQuery 基本使用2.1 下载2.2 使用步骤2.3 jQuery 的入口函数2.4 jQuery 的顶级对象 $2.5 DOM 对象和 jQuery 对象DOM 对象和 jQuery 对象相互转换方法 1. jQuery 概述 1.1 JavaScript 库 1.2 jQue…

一篇文章带你了解知乎热门话题的撰写技巧

在当今信息高速发展的时代,人们越来越依赖网络获取知识。而知乎作为一个知识分享和知识传播的平台,吸引了大量用户的关注和参与。那么,如何在知乎上撰写一篇引人注目的文章呢?接下来,腾轩科技传媒探讨一下知乎文章的撰…

活动回顾 | 走进华为向深问路,交流数智办公新体验

3月20日下午,“企业数智办公之走进华为”交流活动在华为上海研究所成功举办。此次活动由上海恒驰信息系统有限公司主办,华为云计算技术有限公司和上海利唐信息科技有限公司协办,旨在通过对企业数字差旅和HR数智化解决方案的交流,探…