加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

看完这篇,妈妈还会担心你Docker入不了门?

发布时间:2019-06-14 02:11:14 所属栏目:评测 来源:苏静
导读:副标题#e# 【51CTO.com原创稿件】上周对象突然心血来潮说想养个小宠物,我问想养啥她又说随便,你看着办!!! 这我真的比较难办啊!但是咱们程序员能有个对象就不错了,还不赶紧宠着,我只能照办咯! 我去到了一家宠物店,半天也没有找到合适的目标。正在

帮助命令

①docker version:查看 Docker 客户端和服务的版本。

②docker info:查看 Docker 的基本信息,如有多少容器、多少镜像、Docker 根目录等等。

③docker --help:查看 Docker 的帮助信息,这个命令可以查看所有 Docker 支持的命令~

这几个命令非常简单,有过一点 Linux 基础的小伙伴应该很容易理解!

镜像命令

①docker images:查看本地主机上所有的镜像。注意是本地主机的!这里能看到镜像的名称、版本、id、大小等基本信息,注意这里的 imageID 是镜像的唯一标识!

还可以通过 docker images tomcat 指定某个具体的镜像查看对应信息。

这里还要注意的是 CentOS 的镜像才 200MB 的大小,比我们物理机器上装的 CentOS 要小得多的多,这是因为 CentOS 的镜像只保留了 Linux 核心部分,这也是为什么 Docker 虚拟化技术比虚拟机运行效率更高的原因!

那为什么 Tomcat 的镜像这么大呢?那是因为我们之前说过我们的镜像就像一个洋葱一样,是一层套一层的!

Tomcat 的运行需要基于 CentOS、JDK 等等镜像,Tomcat 在上层所以体积比较大啦!

看完这篇,妈妈还会担心你Docker入不了门?

②docker rmi:删除本地的镜像,如下图所示,可以加上 -f 参数进行强制删除。

这里的 rmi 命令跟 Linux 中的删除命令就很像啦,只是这里加了一个 i 代表 image!

看完这篇,妈妈还会担心你Docker入不了门?

③docker search:根据镜像名称搜索远程仓库中的镜像!

④docker pull:搜索到某个镜像之后就可以从远程拉取镜像啦,有点类似咱们 Git 中的 Pull 命令,当然对应的还有个 dockerpush 的命令。

看完这篇,妈妈还会担心你Docker入不了门?

如上图,如果我们没有指定 Tag,默认就会拉取 Latest 版本,也可以通过 docker pull tomcat:1.7 的方式拉取指定版本!

注意这里在拉取镜像的时候打印出来的信息有很多,这也是前面说到的镜像是一层套一层,拉取一个镜像也是一层一层的拉取!

容器命令

通过镜像命令我们就能获取镜像、删除镜像等操作啦!镜像有了下面自然就需要通过镜像创建对应的实例啦,也就是我们的容器。下面我们以 Tomcat 为例:

①docker run [OPTIONS] IMAGE [COMMAND] [ARG...]:可以基于某个镜像运行一个容器,如果本地有指定的镜像则使用本地镜像,如果没有则从远程拉取对应的镜像然后启动!

由于这个命令非常重要,所以下面列出几个比较重要的参数:

  • -d:启动容器,并且后台运行(Docker 容器后台运行,就必须要有一个前台进程,容器运行的命令如果不是一直挂起的命令,容器启动后就会自动退出)。

  • -i:以交互模式运行容器,通常与 -t 同时使用。

  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用(容器启动后进入到容器内部的命令窗口)。

  • -P:随机端口映射,容器内部端口随机映射到主机的高端口。

  • -p:指定端口映射,格式为:主机(宿主)端口:容器端口。

  • -v:建立宿主机与容器目录的同步。

  • --name="myTomcat":为容器指定一个名称(如果不指定,则有个随机的名字)。

看完这篇,妈妈还会担心你Docker入不了门?

上面我通过命令启动了一个 Tomcat 的容器,由于使用了 -t 的参数,所以容器启动后就进入到了容器的内部的命令窗口,打印了很多 Tomcat 启动的日志。

并且使用 -p 参数指定了端口映射,也就是容器内 Tomcat 运行的端口是 8080,并且映射到了宿主机上的 8888 端口,这样我们在外部就可以通过服务器的 ip+8888 端口访问到我们容器内部 Tomcat 部署的服务了。

前面我们提到过容器内的数据会随着容器的关闭而丢失。那我们就需要有容器数据卷的技术能将容器内的数据持久化到宿主机。这里需要用到 -v 参数!

我们看下面的截图:

看完这篇,妈妈还会担心你Docker入不了门?

这里第一个要注意的是我们用的 -d 参数,启动后没有进入到容器内部,还是在宿主机。(可以对比一下与上面 -it 参数的区别)

第二个要注意的是 -v /宿主机:/容器内目录实现了宿主机与容器内指定目录的数据同步!

容器启动后就可以使用 Linux 的 ll 命令查看宿主机上已经同步到了容器内的文件。

第三个要注意的是这里的同步是双向的,也就是说在宿主机上对文件的修改也会同步到容器内部!

多个不同的容器映射到宿主机的同一个目录,就可以实现不同容器间的数据共享啦!

看完这篇,妈妈还会担心你Docker入不了门?

②进入到容器后可以通过 exit 命令退出容器,也可以通过 Ctrl+P+Q 快捷键退出容器,这两种方式的不同之处是 exit 会退出并且关闭容器,而 Ctrl+P+Q 快捷键只是单纯的退出,容器还在运行,并且还能再次进入!

③docker ps:我们可以通过该命令查看正在运行的容器的信息,这里能看到容器的唯一 id,启动时间等等...

这里跟 Linux 的 ps 命令类似,所以也可以把容器理解为一个运行在 Docker 上的进程!

docker ps -a 可以查看运行中与停止的所有容器:

看完这篇,妈妈还会担心你Docker入不了门?

④docker attach [OPTIONS] CONTAINER:上面说过通过 Ctrl+P+Q 快捷键退出容器后容器还在后台运行,那如果想再次进入容器怎么办呢?我们就可以通过 attach 命令+容器的 id 再次进入容器!

⑤docker exec [OPTIONS] CONTAINER:这个命令与 attach 一样都可以再次进入后台运行的容器,但是该命令可以不进入容器而在运行的容器中执行命令!比 attach 更加强大!

⑥docker stop、docker kill、docker restart:这三个命令分别用来停止容器、强制停止容器和重启容器,就跟我们在 Linux 上停止、强制停止和重启某个进程一样的啦,这里就不做演示了!

⑦docker rm:使用这个命令就可以删除某个容器,这里跟删除镜像的区别是这里少了一个 i 啦!

需要注意的是通过 Stop 和 Kill 停止的容器还存在于 Docker 中,而使用 rm 命令操作后的容器将不再存在!

看完这篇,妈妈还会担心你Docker入不了门?

⑧docker inspect:查看容器的详情(也能查看镜像详情)。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读