Docker基本使用
查看本地镜像
查看本地:docker imagesPull镜像:docker pull nginx:latest登录镜像:docker login hub.docker.com -u **** -p ****制作镜像:docker build -t xxxx:v1push:docker push xxx:v1删除镜像:docker rmi #imagesName#
容器操作
运行容器
docker run --name mynginx-test -it(进入shell) --rm(停止后删除) -p 9080:80 (容器80) test/mynginx:v1
docker run -d name:v1进入docker容器
docker exec -it mynginx-test bash查看容器
docker ps删除容器
docker rm #ContainerName#
docker rm # ContainerId#
——————————————————————————————————————
实际操作
使用镜像步骤
(1)没有容器的情况下,先pull拉取镜像,通过docker images查看是否拉取到。docker pull testdocker images(2) 使用任意命令启动容器:docker run --name test -it(进入shell) --rm(停止后删除) -p 9080:80 (容器80) --privileged(ROOT) containerName查看容器状态docker ps -adocker run -d -t --name hello-world -p 8762:8762 -v /home/app/hello.jar:/home/app/hello.jar java8 java -jar /home/app/hello.jar --spring.profiles.active=dev-d 表示在后台启动-p 8762:8762 表示将容器的端口 映射成宿主主机的端口,否则8762端口访问不到-v /home/app/hello.jar:/home/app/hello.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
--name hello-world表示为该容器取一个全局唯一的名称,这里我取的名称为hello-world(3)使用exec命令进入容器,进行操作。docker exec -it (进入shell) containerName /bin/bash
例如下:
拉取容器:sudo docker pull gggmt/cuda101_yolov5sudo docker run --name test(自己创建的本地容器名) -it --rm -p 9080:80 my_torch(镜像名)查看容器内容:sudo docker image sudo docker ps -a (容器名)sudo docker ps -al (容器)
此时我们可以观察一下当前的容器(docker ps -al)与之前的镜像(docker images),可以看到容器与镜像同时独立存在,并且可以看到在容器中正在运行的项目(交互shell,即/bin/bash)。
进入容器命令行:sudo docker run -i -t gggmt/cuda101_yolov5:v1 /bin/bash(v1要指定版本号,默认下载latest)
拷贝数据
1、从主机往容器中拷贝
eg:将主机/tmp目录拷贝到容器b的/test目录下。
docker cp /tmp b:/test/
2、将容器中文件拷往主机
eg:将容器b的/test目录拷贝到主机的/tmp目录中。
docker cp b:/test /tmp/
eg:将主机/tmp目录拷贝到容器b中,目录重命名为test02。
docker cp /tmp b:/test02
原文:https://www.runoob.com/docker/docker-cp-command.html
如何提交自己的镜像
假设我们在容器里安装了新的软件包并且跑通了自己的项目,现在打算把容器提交成镜像分享。
(1)首先查看容器的ID
docker ps -al
这里假设id为:c93dbf2aa0f4
(2)将容器提交到镜像中,同时我们给它指定新的名字
(docker commit [ID] [NEW_name])
(3)提交完成后我们再查看本机存在的镜像
docker images
(4)可以选择两种方式:
第一种:将镜像上传到阿里云镜像仓库中
https://zhuanlan.zhihu.com/p/31772428
第二种:除了上传云镜像库,我们也可以直接将镜像打包成一个独立文件,拷贝分享给别人使用。
(1)docker images
(2)docker save -o test(name).tar test(name)
参考:
https://zhuanlan.zhihu.com/p/31772428
删除镜像和容器
这里注意的是,要删除镜像的话,必须先删除容器。另外,需要先停止容器,再删除。
删除镜像的最佳做法是:先停止容器,再删除容器,最后删除镜像。
删除容器的最佳做法是:先停止容器,再删除容器。
删除容器
(1)查看Docker中的容器,例如:test,容器ID为23f(前三个字符),并删除容器docker ps -a(2)删除容器docker rm 23f(3)容器还在运行,不能删除,先停止运行再删除,或直接强制删除停止容器:docker stop 23fdocker ps -a
删除镜像
1、查看Docker要删除的镜像,如目标版本为stable-perl的test,镜像ID(IMAGE ID)为 66f4565。docker images2、使用命令“docker rmi 镜像ID”删除test(stable-perl)的镜像,只取“IMAGE ID”的前3个字符即可。docker rmi 66f如果没有删除容器,会出现错误:意思是镜像(66f)存在使用中的容器(23f),不能强制删除镜像。官方的意思是要先停止容器运行,再进行镜像的删除操作吗?3、查看Docker运行中的容器,如容器 test:stable-perl ,容器ID为 23f。docker ps4、先停止容器(23f),再删除镜像(66f)docker stop 23fdocker rm 23fdocker rmi 66f5、最后检查是否删除docker ps -a
遇到的问题(已经有了容器的相关操作)
如何进入已经退出的容器呢?
docker ps -a 查看<container-name/ID>
启动已停止的现有容器
docker start <container-name/ID>
停止正在运行的容器
docker stop <container-name/ID>
然后登录到容器的交互式shell。
docker exec -it <container-name/ID> bash
参考:
https://blog.csdn.net/u014282578/article/details/127866389?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169138088916800226548821%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=169138088916800226548821&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogtop_positive~default-1-127866389-null-null.268v1control&utm_term=docker%E5%88%A0%E9%99%A4%E9%95%9C%E5%83%8F&spm=1018.2226.3001.4450&ydreferer=aHR0cHM6Ly9zby5jc2RuLm5ldC9zby9zZWFyY2g%2Fc3BtPTEwMDEuMjEwMS4zMDAxLjQ0OTgmcT1kb2NrZXIlRTUlODglQTAlRTklOTklQTQlRTklOTUlOUMlRTUlODMlOEYmdD1ibG9nJnU9#t1
附docker常用命令:
重启docker服务 sudo service docker restart关闭docker服务 docker service docker stop开启docker服务 docker service docker start查看当前运行的容器:docker ps查询存在的容器:docker ps -a删除容器:docker -rm CONTAINERID 强制删除容器:docker -rm -f CONTAINERID 不能够删除一个正在运行的容器,会报错。需要先停止容器。查看镜像:docker images删除镜像:docker -rmi IMAGEID 强制删除镜像:docker -rmi -f IMAGEID 利用镜像创建容器:docker run --name centos -itd centos:latest
进入后台运行的容器:docker exec -it containname /bin/bash启动容器:docker start containername停止容器:docker stop containername停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q)如果想要删除所有container的话再加一个指令: docker rm $(docker ps -a -q)注:-a标志列出所有容器,-q标志只列出容器的ID,然后传递给rm命令删除全部image的: docker rmi $(docker images -q)重命名一个容器:docker rename old_name new_name要获取所有容器名称及其IP地址:
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
附:https://blog.csdn.net/ithaibiantingsong/article/details/81353168

!

相关文章:
Docker基本使用
查看本地镜像 查看本地:docker imagesPull镜像:docker pull nginx:latest登录镜像:docker login hub.docker.com -u **** -p ****制作镜像:docker build -t xxxx:v1push:docker push xxx:v1删除镜像:docker rmi #imag…...
PHP生成随机数
要在 PHP 中生成随机密码,可以使用 rand() 函数和字符串操作函数。以下是一个示例代码来生成包含字母、数字和特殊字符的随机密码 function generateRandomPassword($length 8) {// 定义包含字母、数字和特殊字符的字符集$characters abcdefghijklmnopqrstuvwxyz…...
MongoDB:Unrecognized option: storage
MongoDB一直显示 Unrecognized option: storage try ‘mongod --help’ for more information 意思是我们配置的config文件出了问题。 说明:MongoDB采用的是YAML格式,所以我们只需要稍微改改就好。 在storage前面:没有空格 下面两行最前面…...
Java基础九 - 异常
1. throw 和 throws 1. throw是在代码运行过程中引起一个异常 2. throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理 2. final、finally、finalize 1. final是修饰符,用于修饰变量、方法、类修饰变量,最开始…...
[国产MCU]-BL602开发实例-UART数据发送与接收
UART数据发送与接收 文章目录 UART数据发送与接收1、BL602的UART介绍2、UART相关驱动API介绍3、UART使用示例3.1 轮询方式数据接收与发送3.2 中断方式数据接收与发送3.3 DMA方式接收与发送数据通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为UART)…...
mac安装open3d时候出现错误
在测试open3d是否正常顺利安装时,出现了如下错误: python -c "import open3d as o3d; print(o3d.__version__)" Traceback (most recent call last):File "<string>", line 1, in <module>File "/Users/huangzhe/…...
打造本地户外装备小程序商城教程大揭秘
在如今的移动互联网时代,小程序已经成为了各行各业的发展利器。尤其对于户外用具行业来说,一个专属的小程序商城将能够极大地提升企业的品牌形象和销售业绩。下面就来介绍一下快速上手制作户外用具小程序的攻略吧。 首先,登录乔拓云平台进入商…...
在外SSH远程连接Ubuntu系统
在外SSH远程连接Ubuntu系统【无公网IP】 文章目录 在外SSH远程连接Ubuntu系统【无公网IP】前言1. 在Ubuntu系统下安装cpolar软件2. 完成安装后打开cpolar客户端web—UI界面3. 创建隧道取得连接Ubuntu系统公网地址4. 打开Windows的命令界面并输入命令 前言 随着科技和经济的发展…...
GOTS标准速递---7.0 版将于2024年3月1日起全面生效
【GOTS标准速递---7.0 版将于2024年3月1日起全面生效】 全球有机纺织品标准很高兴地宣布发布GOTS 7.0 版,该版本扩大了环境和社会标准的范围,同时保持了适用于工业生产并适用于各种产品的标准。在为期一年的定期修订过程中,在有机生产、纺织品…...
Ansible的安装和配置
安装和配置 Ansible 安装所需的软件包 创建名为 /home/greg/ansible/inventory 的静态清单文件,以满足以下要求: 172.25.250.9 是 dev 主机组的成员 172.25.250.10 是 test 主机组的成员 172.25.250.11 和 172.25.250.12 是 prod 主机组的成员 172.2…...
口-肠-脑轴与精神健康的关系
谷禾健康 在个体中,每个微生物栖息地都表现出独特的微生物种群模式。迄今为止,关于微生物组相关疾病的研究主要集中在器官特异性微生物组上。然而,器官间的微生物网络正逐渐成为生理功能和病理过程中的重要调节因子和治疗机会。 在正常情况下…...
Dubbo是干嘛的,Dubbo原理和机制,Dubbo的核心组件
目录 一、介绍1、Dubbo是什么2、为什么需要Dubbo3、Dubbo的特性 二、 Dubbo的核心概念1、暴露和引用(Export and Refer)2、服务提供者和服务消费者3、注册中心4、负载均衡5、集群容错 三、Dubbo的架构1、服务提供者和服务消费者之间的通信流程2、Dubbo的…...
自动zksync刷账户交互(附代码)
自动化任务的 Python 代码。它使用 Selenium 库来控制浏览器。 #解锁小狐狸 task.unlock_metamask(ads) #zk主网连接钱包,初始化 #ZK主网任务1:转账 print(选择ZK主网任务1:转账) task.zk_task1(ads,address) #…...
荐读 | 《揭秘云计算与大数据》
当我们回顾过去几十年的科技进步时,云计算和大数据在现代科技发展史上无疑具有里程碑式的意义,它们不仅改变了我们的生活方式,而且对各行各业产生了深远的影响。 在这个数字化时代,云计算和大数据技术已经成为推动全球发展的关键…...
RISC-V基础之内存分布与映射
内存映射是指将地址空间划分为不同的部分或段,每个段有不同的用途和属性。这段话介绍了五个段:文本段、全局数据段、动态数据段、异常处理器段和操作系统(OS)段。下面是对每个段的简要说明: 文本段:存放程序…...
【Unity3D应用案例系列】Unity3D中实现文字转语音的工具开发
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中,会遇到将文字转语音输出的需求࿰…...
STM32入门——定时器
内容为江科大STM32标准库学习记录 TIM简介 TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时&…...
企业工商信息:知识产权出质
一、出质是什么?质权是什么? 出质,作为一种物权行为,是指将个人或企业所拥有的财产权益移交给他人作为抵押,以获得资金支持。这一概念在商业活动中扮演着重要的角色,为企业创造了融资渠道。特别是在知识密…...
batch_softmax_loss
每个用户抽取一定数量的困难负样本,然后ssm def batch_softmax_loss_neg(self, user_idx, rec_user_emb, pos_idx, item_emb):user_emb rec_user_emb[user_idx]product_scores torch.matmul(F.normalize(user_emb, dim1), F.normalize(item_emb, dim1).transpose(…...
刘汉清:从生活到画布,宠物成为灵感源泉
出生于中国镇江的艺术家刘汉清,其作品展现出他对日常生活的深入洞察力,以及对美的独特理解。他的作品通常没有视觉参考,而是通过对他周围环境的理解,尤其是他的宠物,来进行创作。 在刘汉清的创作过程中,他…...
AD21编译报错“contains floating input pins”?别慌,可能是你的元件库电气类型没设对
AD21编译报错“contains floating input pins”深度解析与实战解决方案 当你满怀信心地在AD21中完成PCB设计,点击编译按钮时,突然跳出的"contains floating input pins"报错就像一盆冷水浇下来。这个看似简单的错误提示背后,隐藏着…...
基于RT-Thread与PSoC 6的智能环境监测系统设计与实现
1. 项目概述:当嵌入式RTOS遇上混合信号MCU最近在捣鼓一个智能环境监测的小玩意儿,核心需求很简单:实时采集环境的温湿度数据,一旦超过预设的阈值,就通过声光或者网络的方式发出警报。听起来像是毕业设计的经典题目&…...
不只是安装:用MATLAB+RTL-SDR硬件支持包快速上手你的第一个无线信号接收项目
不只是安装:用MATLABRTL-SDR硬件支持包快速上手你的第一个无线信号接收项目 当你第一次将RTL-SDR设备插入电脑,安装完MATLAB硬件支持包后,那种既兴奋又迷茫的感觉可能还记忆犹新。硬件已经就绪,软件也已安装,但接下来该…...
ESP32平台后量子密码学Kyber算法优化实践
1. ESP32平台上的后量子密码学实践 在物联网设备数量呈指数级增长的今天,设备间的安全通信面临着前所未有的挑战。传统公钥加密算法如RSA和ECC正面临着量子计算的威胁——Shor算法能在多项式时间内破解这些基于大整数分解和离散对数问题的加密体系。作为应对&#x…...
从零构建智能体工作流引擎:核心架构、实现与生产级实践
1. 项目概述:从零构建一个智能体工作流引擎最近在GitHub上看到一个名为agentkit的项目,来自BCG X的官方仓库。这个标题立刻引起了我的兴趣,因为它直指当前AI应用开发中的一个核心痛点:如何高效、可靠地编排和管理多个AI智能体&…...
Git合并翻车现场实录:从命令行到IDEA,详解Merge冲突前后的撤销操作差异
Git合并操作全流程避险指南:冲突诊断与精准撤销策略 当两个开发分支在版本控制系统中交汇时,合并操作就像一场精心编排的代码芭蕾。但现实往往比理想骨感——据统计,约35%的Git用户在合并过程中至少遭遇过一次需要撤销操作的场景。本文将带您…...
AI VTuber技术栈全解析:从Live2D到GPT-SoVITS的实战搭建指南
1. 项目概述:为什么我们需要一份AI VTuber的“Awesome”清单? 如果你最近在GitHub、B站或者一些技术社区里逛过,大概率会看到一个词反复出现: AI VTuber 。它不再是科幻电影里的概念,而是正在快速渗透到直播、内容创…...
国家十四五课题背书,镜像视界无感定位解决ReID跨镜全场景痛点
国家十四五课题背书,镜像视界无感定位解决ReID跨镜全场景痛点在数字孪生、视频孪生技术全面落地的当下,全域跨镜目标追踪与精准定位已成为智慧安防、智慧园区、智慧港口、军工厂管控、危化品园区管理等领域的核心刚需。传统跨镜追踪技术长期依赖ReID&…...
AI智能体配置管理:从环境变量到结构化配置的工程实践
1. 项目概述:一个为AI智能体量身定制的配置管理中枢最近在折腾AI智能体(Agent)相关的项目,无论是基于LangChain、AutoGPT还是其他框架,一个绕不开的痛点就是配置管理。API密钥、模型参数、工具配置、环境变量……这些零…...
这个内核 bug 潜伏了 9 年。
TL;DR — Linux 内核加密子系统的一行 sg_chain() 调用,让 page cache 页被放进了可写的 scatterlist。任何普通用户通过 splice() AF_ALG 就能精准覆盖 setuid 二进制的内存映像,5 秒 root。潜伏 9 年,影响 2017 年以来几乎所有主流发行版。…...
