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

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

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

相关文章

查看Scala类的方法

文章目录 一、概述如何查看Scala类的方法二、使用Scala文档查看类的方法三、使用反射机制查看类的方法 一、概述如何查看Scala类的方法 本文介绍了在Scala中查看Int类方法的两种方法:使用Scala标准库文档和使用反射机制。通过Scala标准库文档,您可以方便…

[Netty实践] 请求响应同步实现

目录 一、介绍 二、依赖引入 三、公共部分实现 四、server端实现 五、client端实现 六、测试 一、介绍 本片文章将实现请求响应同步,什么是请求响应同步呢?就是当我们发起一个请求时,希望能够在一定时间内同步(线程阻塞&am…

操作系统面经-用户态和内核态

字节实习生带你面试,后台私信可以获得面试必过大法!! 根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别: 用户态(User Mode) : 用户态运行的进程可以直接读取用户程序的数据,拥有较低的…

启动Vue-demo时引发的一系列问题—解决办法

目录 1.初始遇到的问题:输入npm run dev 1.治标的解决方法 2.治本的解决方法 第一步:检查是否安装了cnpm 第二步:手动找到cnpm目录 第三步:配置系统环境变量 第四步:查看是否安装成功 1.初始遇到的问题&#xf…

JavaSE:类与对象

目录 一、前言 二、类与对象的介绍 1.类的定义格式 三、类的实例化 1.类的实例化介绍 2.成员初始化 3.类中方法的实现 四、封装 1.private实现封装 2.getter和setter方法 五、构造方法的使用 1.构造方法的介绍 2.构造方法的特性 六、this引用 1.this的介绍 2.th…

LeetCode---126双周赛

题目列表 3079. 求出加密整数的和 3080. 执行操作标记数组中的元素 3081. 替换字符串中的问号使分数最小 3082. 求出所有子序列的能量和 一、求出加密整数的和 按照题目要求,直接模拟即可,代码如下 class Solution { public:int sumOfEncryptedInt…

Oracle Data Guard常用命令

--查询数据库角色和保护模式 select database_role,switchover_status from v$database; --切换备库为主库(切换后,主库为mount状态) --TO PRIMARY alter database commit to switchover to primary; --SESSIONS ACTIVE alter database comm…

如何保障消息一定能发送到RabbitMQ?

我们知道,RabbitMQ的消息最终是存储在Queue上的,而在Queue之前还要经过Exchange,那么这个过程中就有两个地方可能导致消息丢失。第一个是Producer到Exchange的过程,第二个是Exchange到Queue的过程。 为了解决这个问题&#xff0c…

大学期末考试搜题软件?这4款足够解决问题 #知识分享#笔记#职场发展

当代大学生面临着繁重的学业压力和海量的知识点,如何高效地进行学习和搜题成了他们关注的焦点。幸运的是,随着科技的不断进步,我们有越来越多的日常搜题和学习软件可以帮助我们更好地应对这些挑战。在本文中,我将为大家介绍10款备…

皓学IT:WEB06_ EL表达式JSTL标签库

一、EL表达式 1.1.特点 是一个由java开发的工具包 用于从特定域对象中读取并写入到响应体开发任务,不能向域对象中写入。 EL工具包自动存在Tomcat的lib中(el-api.jar),开发是可以直接使用,无需其他额外的包。 标准…

千万不要错过这9款能让你快速写作成长的宝藏软件…… #科技#学习方法#学习

很多小伙伴想要自己做自媒体,但是却不知道从何下手,今天我就和大家分享一波好用的一些自媒体工具。 1.红桃写作 这是一个微信公众号 面向专业写作领域的ai写作工具,写作助手包括,ai论文,ai开题报告、ai公文写作、ai商业计划书、…

每日五道java面试题之springboot篇(三)

目录: 第一题. Spring Boot 中的监视器是什么?第二题. 如何在 Spring Boot 中禁用 Actuator 端点安全性?第三题. 我们如何监视所有 Spring Boot 微服务?第四题. 什么是 WebSockets?第五题. 什么是 Spring Data ? 第一…

Qt教程 — 3.6 深入了解Qt 控件:Display Widgets部件(2)

目录 1 Display Widgets简介 2 如何使用Display Widgets部件 2.1 QTextBrowser组件-简单的文本浏览器 ​2.2 QGraphicsView组件-简单的图像浏览器 Display Widgets将分为两篇文章介绍 文章1(Qt教程 — 3.5 深入了解Qt 控件:Display Widgets部件-CSDN…

使用POI以OLE对象的形式向excel中插入附件(pdf为例)

前言: 最近在使用easyExcel操作excel文件时,一直想找到一个方法可以往excel中填充附件,但是目前只发现POI可以插入附件,于是将方法记录如下: 实现: 这个方法主要是使用 Apache POI 的 HSSFWorkbook 类来…

带有GUI界面的电机故障诊断(MSCNN-BILSTM-ATTENTION模型,TensorFlow框架,有中文注释,带有六种结果可视化)

本次创作最主要是在MSCNN-BILSTM-ATTENTION模型(可轻松替换为其它模型)基础上,搭建GUI测试界面,方便对你想要测试的数据的进行测试,同时进行了全面的结果可视化:1.训练集和测试集的准确率曲线,2…

第28章 ansible的使用

第28章 ansible的使用 本章主要介绍在 RHEL8 中如何安装 ansible 及 ansible的基本使用。 ◆ ansible 是如何工作的 ◆ 在RHEL8 中安装ansible ◆ 编写 ansible.cfg 和清单文件 ◆ ansible 的基本用法 文章目录 第28章 ansible的使用28.1 安装ansible28.2 编写ansible.cfg和清…

v3-admin-vite 整合pont

需求 目前后端的Admin模板使用的是v3-admin-vite,需要整合pont接口,方便前后端统一一体化开发 安装PONT 按照官方的文档,将pont engine安装好,然后在项目根目录执行pont start。注意生成代码路径要修改一下,因为v3-a…

AI新工具(20240322) 免费试用Gemini Pro 1.5;先进的AI软件工程师Devika;人形机器人Apptronik给你打果汁

✨ 1: Gemini Pro 1.5 免费试用Gemini Pro 1.5 Gemini 1.5 Pro是Gemini系列模型的最新版本,是一种计算高效的多模态混合专家(MoE)模型。它能够从数百万个上下文Token中提取和推理细粒度信息,包括多个长文档和数小时的视频、音频…

Excel数字乱码怎么回事 Excel数字乱码怎么调回来

在日常工作中,Excel是我们最常使用的数据处理软件之一,它强大的功能使得数据处理变得既简单又高效。然而,用户在使用Excel时偶尔会遇到数字显示为乱码的问题,这不仅影响了数据的阅读,也大大降低了工作效率。那么&#…

Docker-Image

Docker Docker 镜像是什么为什么需要镜像镜像命令总览docker imagesdocker tagdocker pulldocker pushdocker rmidocker savedocker loaddocker image inspectdocker historydocker importdocker image prunedocker build Docker 镜像是什么 Docker image 本质上是一个 read-on…