百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

Docker虚拟机常用指令介绍 docker vmware

liebian365 2024-11-11 14:50 18 浏览 0 评论

CentOS安装Docker

yum update -y

yum install -y docker

常用管理命令

启动、关闭、重启

service docker start

service docker stop

service docker restart

左上角的 DockerFile 文件定义了镜像要安装程序和配置的环境,通过 build 指令可以创建出我们想要的镜像;

一旦创建出镜像,如果想要将镜像分发给其他主机的docker虚拟机,一种方法是借助docker仓库来实现,我们可以通过 push 指令把本地镜像上传到仓库中,其他主机就可以通过 search 指令到仓库中去查找上传的镜像,找到上传的镜像之后可以通过 pull 指令将镜像下载到本地,这样别的主机的docker虚拟机就可以拥有这个镜像了;另一种方式是通过文件的方式,将镜像导出为压缩文件,别的主机再用压缩文件导入为镜像就可以了,导出指令是 saveexport,导入的指令是 loadimport;

镜像一旦创建出来也是可以删除的,通过 rmi 指令可以将镜像删除;

如果想要查看镜像的详细信息,可以使用 inspect 指令;

如果想要查看docker虚拟机内的所有镜像,可以使用 images 指令;

镜像是用来创建容器的,从镜像创建出容器的指令是 run

创建出容器之后,这个容器就直接运行了,如果想要停止容器运行或者删除容器,可以使用指令 pause 指令暂停,如果恢复运行可以使用 unpause 指令;如果想要彻底停止容器的指令是 stop ,恢复运行指令为 start;

查看容器详细信息可以使用指令 inspect;

如果想要查看docker虚拟机内的所有所有容器可以使用 ps 指令,如果删除容器可以使用 rm 指令;

容器可以保存为镜像,在容器里面安装程序,配置环境,然后保存为镜像,可以使用 commit 指令。

安装Java镜像

docker search java #搜索与java相关的的镜像

docker pull java #下载指定的镜像

国外镜像仓库下载速度较慢,建议使用国内镜像仓库,如 DaoCloudDaoCloud镜像配置 , 找到Linux的配置,将其复制粘贴到终端

Linux 下配置

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

配置完后还需要修改配置文件

vim /etc/docker/daemon.json

修改前:

{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],}

将最后的 , 逗号去掉就行了

修改后:

{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}

接下来搜索与java有关的镜像

docker search java

这里使用的是 docker.io/java ,将镜像的名称复制粘贴到下面代码中

docker pull docker.io/java

然后使用下面命令显示docker里面安装的镜像是什么

docker images

导出导入镜像

安装了docker镜像,如果想备份镜像,把镜像导出,保存为压缩文件,用到的指令是 save。如果要从压缩文件导入镜像,使用的指令是 load

语法

docker save java > /home/java.tar.gz #导出镜像

docker load < /home/java.tar.gz #导入镜像

docker images #查看docker虚拟机里面导入导出的镜像有哪些

docker rmi java #删除镜像

实操

导出刚才安装的java镜像


查看一下是否导出成功


现在将docker虚拟机里面的镜像删掉


查看镜像


导入镜像


查看镜像


启动容器

示例

docker run ...

使用该指令可以创建并启动一个容器(启动镜像会创建出一个运行状态的容器)

语法

docker run -it --name myjava java bash

    • -it: 启动容器之后开启一个交互的界面
    • –name: 给容器起一个名字,可选参数,如果不给容器起名字,它就没有名字,我们管理容器的时候可以根据容器的id去管理容器,比如关闭容器,查看容器信息都可以使用id查找到这个容器
    • myjava: 容器的名字
    • java: 镜像的名字
    • bash:启动的容器运行什么样的程序,运行的是bash命令行

另外还有一些其他参数,比如启动容器之后开启什么端口,把这个端口映射到宿主机上等

docker run -it --name myjava -p 9000:8080 -p 9001:8085 java bash

  • -p: 映射端口
  • 9000:8080: 9000 代表的是宿主机的端口,:8080 是容器的端口,这句话的意思说把容器 8080 的端口映射到真实主机 9000 端口上;
  • -p: 映射另外一组端口,容器想映射多少个端口就写多少个 -p 参数就可以了;后面的表示把 8085 端口映射到真实宿主机9001 端口上;

还可以把宿主机上的文件或文件夹映射到容器中,比如将来跑数据库的时候数据库存储的数据一定要保存到宿主机上的,不应该存储到容器里面,数据一定要在容器之外去保存,将来在备份和恢复的时候就非常方便。

docker run -it --name myjava -v /home/project:/soft --privileged java bash

    • -v: 映射文件,如果有多个映射就使用多个 -v;
    • /home/project:/soft: 宿主机信息,以冒号 : 分隔,/home/project 表示宿主机的目录,这句表示把宿主机的 /home/project 目录映射到容器中的 /soft 目录里面;
    • –privileged: 在linux系统创建文件和读取文件都是有读写权限的,我把宿主机的目录映射到容器的目录中,soft 目录就可以看到真实主机的 project 目录中的一些东西了,如果我们想在 soft 目录中去创建文件和读写文件,真实的宿主机会不会给 soft 这样的权限呢? 后面就需要加上 --privilged 这样的参数,这个参数就告诉docker在运行的时候容器在操作映射目录和映射文件的时候是拥有最高权限的,读写都是可以的。

操作

我们首先在 /home 目录中创建一个文件夹,将来把文件夹映射到容器里面。


启动镜像,并将8080端口映射到真实主机9000上,把8085端口映射到9001端口上,还有目录的映射

docker run -it -p 9000:8080 -p 9001:8085 -v /home/project:/soft --privileged --name myjava docker.io/java bash

回车后会发现前面的提示都变了,现在的界面是进入到了容器里面,刚才命令我们添加了 -it 参数,该参数就是启动一个交互的界面,这里启动的是一个java的容器,里面安装了jdk,我们检测一下java环境,输入 javac


查看一下java版本 java -version

查看一下映射的目录,会发现没有任何的东西。


soft 目录中创建一个文件,并向里面写入内容


退出当前容器


进入宿主机的 /home 目录查看里面内容


暂停容器

docker pause myjava

恢复容器

docker unpause myjava

彻底停止

docker stop myjava

恢复运行

docker start -i myjava

之前我们在容器的交互界面使用 `exit` 退出容器,该命令不仅是退出容器,还停止运行了,使容器进入到 `stop` 状态里面,如果要运行执行容器的话就必须使用 `start` 命令去重新启动容器

重新启动刚才关闭的容器


重新打开一个终端,并连接到linux上,在这里面将 myjava 的容器暂停一下

恢复容器


如果想删除容器,前提是必须彻底停止容器,然后再去删除容器


查看容器

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: