分享好友 最新动态首页 最新动态分类 切换频道
docker命令介绍,镜像制作,导出镜像,容器启动,进入容器操作等
2024-12-27 04:42
 
 
 

运行第一个hello-world镜像程序

docker命令介绍,镜像制作,导出镜像,容器启动,进入容器操作等

 
 
 
 
 
 
 
 
 
 

#搜索tomcat镜像

 

#安装tomcat镜像

 

#查看已安装的tomcat镜像

 
 

-d表示后台运行,-p端口映射,前面的8088是外围访问端口(也就是本机ip对外开放的端口,后面8080是docker容器内部的端口
tomcat:last last是指定的tomcat的标签,相同的镜像可以指定不同的标签以做区分。

 
 
 

#进入docker里面的tomcat容器,需要容器ID,所以上面要查看正在运行的容器tomcat

 

#查看tomcat镜像内部文件,并进入webapps文件夹
#Linux命令
cd /回到根目录
cd ~进入用户主目录
cd -返回进入此目录之前所在的目录
cd …返回上级目录
cd …/…返回上两级目录

ls
cd webapps

退出容器:

 

启动容器

 

停止容器

 
 

通过在浏览器中访问tomcat来查看启动的tomcat镜像是否可以正常运行,访问方式同一般机器下部署tomcat,即:http://ip:8080,根据自己ip地址情况。如我的测试地址是:http://192.168.93.128:8080

将war包通过Ftp放入linux系统中的usr目录下,并将war包拷贝到docker中,containerID 是你所启动tomcat镜像的容器ID或者容器名称也可以,用docker ps命令查看。 这是将test.war放到tomcat的webapps下

 
 

本地打开浏览器直接访问,不成功就等项目成功启动后,或者多试几次就ok。

#(什么是宿主机:自己当前的服务器centOS7称之为宿主机,宿主机上的docker可看作一个容器,也就是docker所在的服务器称为宿主机)
 为挂载目录之前做准备

在usr/local/目录下创建一个dev目录,dev目录用来专门存放开发包什么的,dev目录下再创建一个docker-tomcat目录,行了,就用docker-tomcat进行映射到docker中的tomcat容器里的webapps目录,创建目录如下图

一、首先将自己完成的项目打包,我这里是打jar包,然后编辑Dockerfile文件。

在 Dockerfile 中,COPY 和 ADD 命令用于将文件和目录复制到 Docker 镜像中,但它们之间有一些区别

  • COPY 命令用于简单的文件复制操作,不执行任何额外功能
  • ADD 命令除了具有 COPY 命令的所有功能外,还可以复制远程 URL 文件并自动解压缩

一般来说,如果仅需要简单的文件复制操作,推荐使用 COPY 命令。而对于需要支持自动解压缩或复制远程文件的情况,可以考虑使用 ADD 命令

 
 
 
 
 
 
 

拓展
Dockerfile文件编写规则
1、指令大小写不敏感,为了区分习惯上用大写
2、Dockerfile 非注释行第一行必须是 FROM
3、文件名必须是 Dockerfile
4、Dockerfile 指定一个专门的目录为工作空间
5、所有引入映射的文件必须在这个工作空间目录下
6、Dockerfile 工作空间目录下支持隐藏文件(.dockeringore)
7、(.dockeringore)作用是用于存放不需要打包导入镜像的文件,根目录就是工作空间目录
8、每一条指令都会生成一个镜像层,镜像层多了执行效率就慢,能写成一条指定的就写成一条。

将编辑好的Dockerfile文件和打包好的myproject-web.jar文件放在同一个文件夹,最好新建一个目录放里面。

在该目录下使用docker build制作镜像 命令为

 

docker build基本使用说明
格式

 

选项说明
-t 给镜像加一个Tag
ImageName 给镜像起的名称
TagName 给镜像的Tag名

Dir Dockerfile所在目录(一般都是 “.” , 注意这个“.” 就是表示当前目录下

使用例子

 

解释
myproject-web 是镜像名
vV1.0是 tag 标签
. 表示当前目录,即Dockerfile所在目录

可以使用docker images查看镜像
现在我们使用docker images查看刚构建的镜像
命令

 
 

操作命令

 

这个命令是指启动myproject-web项目,-d是后台运行,将宿主机的80端口映射到容器的8089端口(这个端口是我启动项目的端口,也就是项目中的配置文件里面的端口8089
myproject-web-V1.0是启动项目容器的别名,容器的别名要指定,不然每次启动都会随机生成一个别名,也不清楚是否启动了此容器,造成容器重复启动,myproject-web是我们上面构建的镜像名称。

最后可以使用docker ps 和 docker ps -a查看我们启动的容器
docker ps命令用来展示所有运行中的容器
如果镜像启动失败了,使用 docker ps 查看不到,可以使用docker ps -a该命令,查看所有镜像
docker ps -a 命令是用来展示所有所有的容器,包括未运行的容器

 
 
 
 
 
 

https://hub.docker.com/

 
 
 

或者

 
 
 
 

docker rm $(docker ps -a -q) #正在运行的删除不了,所有未运行的都被删除了
或者
docker container prune #Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器

 
 
 
 
 

1 首先使用docker ps -a 查看本机上的所有容器

 

在 Docker 中,docker import 和 docker export 命令用于导出和导入容器快照(不包括镜像的历史记录和元数据,而不是直接导出和导入镜像

#使用docker export命令根据容器id将镜像导成一个文件
#此类导出就类似一个linux文件

 

上面命令执行之后,我们便可以通过ls命令在当前目录下发现image.tar

使用docker import命令将这个镜像导进来

cat <输入文件名.tar> | docker import - <新镜像名称>

 

通过docker images 命令查看镜像是否导入

注意虽然这种方式导入镜像成功,但是启动不了容器

1 通过docker image查看本机上的所有镜像

 

2 找到要上传的镜像的id,使用docker save命令将镜像保存为一个文件

 

docker save 可以将多个image打包成一个文件

 
 
 
 
 

3 通过docker load载入镜像

 

例如,要导入 my-image.tar 文件,可以运行以下命令

 

这两种方案的差别

1,文件大小不同
export 导出的镜像文件体积小于 save 保存的镜像

2,是否可以对镜像重命名
docker import 可以为镜像指定新名称
docker load 不能对载入的镜像重命名
3,是否可以同时将多个镜像打包到一个文件中
docker export 不支持
docker save 支持
4,是否包含镜像历史
export 导出(import 导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史记录和元数据信息(即仅保存容器当时的快照状态,所以无法进行回滚操作。
而 save 保存(load 加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。
5,应用场景不同
docker export 的应用场景:主要用来制作基础镜像,比如我们从一个 ubuntu 镜像启动一个容器,然后安装一些软件和进行一些设置后,使用 docker export 保存为一个基础镜像。然后,把这个镜像分发给其他人使用,比如作为基础的开发环境。
docker save 的应用场景:如果我们的应用是使用 docker-compose.yml 编排的多个镜像组合,但我们要部署的客户服务器并不能连外网。这时就可以使用 docker save 将用到的镜像打个包,然后拷贝到客户服务器上使用 docker load 载入。

 
 
 
 
 
 

退出teiminal ctrl+q/ctrl+p
退出容器命令 exit

 
 
 
 
 
 
 
 
 
 
 

最新文章
遇到纠纷不用慌,“人民调解”帮你忙!“解纷芜优”指引来了
生活中可能遇到矛盾纠纷,如果闹上法庭,不仅要花时间和金钱,还会伤害人与人之间的和气……那么,如何更加妥善高效处理矛盾纠纷呢?快随小编来看看“人民调解”如何省时省心帮助纠纷双方解决问题吧现在可以通过“解纷芜优”在线申请调解啦
甲骨文谈存储:其实一开始我们就是认真的
当人们谈到iPhone的成功最大的因素之一就是软件与硬件最强大的结合。雷军也表示软硬件结合互联网是小米成功的核心。今天甲骨文高调宣布其存储设备并向业 内发出最强音---甲骨文的软件加上甲骨文的存储设备,就是要为企业级数据市场提供最好
青年小店,让城市未来这YOUNG出彩丨青年小店榜样计划(浙江杭州站)圆满举行
杭州,一座创新活力之城、青年友好之城,吸引着大批年轻人前来生活与创业,为大批怀揣梦想与激情的年轻人提供了创业沃土,也承载着不少年轻人的诗和远方。近年来,杭州市积极践行青年优先发展理念,全力支持青年创新创业,吸引众多有志青年
淘宝直播店抽免单如何配置?
抽免单工具是淘宝直播平台提供给商家和主播的一种玩法工具,用户通过对指定商品下单参与活动,可以赢取免单福利,主播可以通过该工具进行直播间福利发放,亦可通过该工具提升成交爆发系数,欢迎各位商家和主播伙伴使用~注意:抽免单工具202
面容即密码!人脸识别签到助参会者快速入场
在数字化技术不断发展的今天,人脸识别签到技术正逐渐成为各类活动入场管理的热门之选,以其卓越的智能化特性重塑着传统签到模式。人脸识别:精准验证的奥秘人脸识别签到,是一种依托先进的图像识别技术与深度学习算法的身份验证方式。它通
用AI绘画生成诱人美女,简单几步打造个人专属女神
在科技越来越发达的今天,AI绘画逐渐走入了我们的生活。作为一位AI工具科普博主,今天我想和家人们分享的是,如何使用AI生成超逼真的美女写真。你是否想过,为你的社交平台增添一些引人注目的照片,或者为自己创造一个独特的人物形象?人工
高清美女写真就这样轻松生成!用AI工具打造你的数位女神
在主页上,挑选一款你喜欢的美女写真模板,工具内提供了众多预设风格,可以让你眼花缭乱。步骤三:自定义设计根据你的喜好,调整肤色、发型、眼睛等细节。你会发现,镜头下的她越来越符合你心中的那个完美形象。步骤四:生成并预览完成调整
近八成受访大学生认为需要减少对算法推荐的依赖
  视觉中国供图  就读于西北师范大学的刘昊冉觉得算法无处不在,有时仅仅是和同学聊天谈到某个话题,打开手机就会发现相关推荐已经出现在各类软件里了。刘昊冉对这样的推荐不太满意,感觉隐私在算法面前暴露无遗。  近日,中国青年报
东莞市莞城街道第二教师村老旧小区改造工程项目竞争性磋商公告
  项目概况  东莞市莞城街道第二教师村老旧小区改造工程项目的潜在供应商应在广东省东莞市莞城高第街5号市7楼东莞市莞城招投标服务所获取采购文件,并于2021年11月30日 09时30分(北京时间)前提交响应文件。  一、项目基本情况  
零基础教程,从零开始搭建你的
从零开始搭建,本文详细介绍了整个步骤,包括选择、、主机购买、设计、内容填充、SEO优化等关键环节,助你打造个性化。lia href=http://azrprosper.com/fwq/#id1 title=筹备阶段筹备阶段/a/lilia href=http://azrprosper.com/fwq/#id2 titl
相关文章
推荐文章
发表评论
0评