docker详解1 【docker架构粗解,运行与一些有用命令总结】

标签: docker docker架构
1950人阅读 评论(0) 收藏 举报
分类:

谈谈docker的基本架构

并不从很深的底层来谈docker怎么实现,从简单角度谈谈docker的运行流程和架构。来看两张图:
这里写图片描述

docker_host指代我们的宿主机(运行电脑的物理机),程序docker deamon(守护进程)在宿主机中运行,通过docker deamon来操作docker
蓝色的地方代表的是互联网端,这是一个整个互联网中docker用户共享的一个地方,可以从这里拖取你需要的images

再来看第二个图:
这里写图片描述

这个就是上面那个图的中文更明白的解释

几条命令带你了解docker


docker run imagename:tag

这里写图片描述
为什么说docker足够快,足够方便?想象一下,你打开vmware,启动一个ubuntu,使用bash输出一句hello world需要多久?一分钟,两分钟?而docker呢,一秒,两秒!

不过上面的例子,实际运用中并没有多大的意义,下面来看更具体的操作

docker run -p 8080:80 -d nginx

这里写图片描述
搭建docker环境,然后开发完成你的任务后给别人继续开发,无疑是非常实用的功能,那该如何去搭建一个比如说nginx服务器呢?你可以使用docker pull去从docker的共享中心获取,这个见最后的命令总结

回到上面这个命令,这个命令使用docker run,通过-d命令,启动了一个名为nginximage(这个image是我通过docker pull获取到的默认tag lastestnginx image),使用-p命令,将docker中的80端口映射到宿主机8080端口

看一下宿主机效果图:
这里写图片描述
没问题,果然是熟悉的味道!


嘿,接下来问题来了,那我怎么操作这个image呢?又或者说,我如何对其进行开发呢?

docker exec -it 3137e /bin/bash

这里写图片描述

嘿,你肯定会问3137e这是啥命令,这么奇怪?

错了错了,这不是命令,这是id,对应的就是上面的正在运行的nginxdocker run的时候返回的id

那,-it又是啥意思呢?这里-it代表的不是一个参数,而是-i-t,只不过为了方便,直接结合了。-i参数,打开STDIN,用于控制台交互;-t参数,分配tty设备,该可以支持终端登录,默认为false

不信?拆开来看一下咯!
这里写图片描述
获取到bash命令行,后续就省略了,大家都懂的正常操作配置就行!


第三个问题,我们都知道vmware具有,那啥,拖拽的功能,那docker该如何将宿主机文件拉入images中呢?

第一种办法,当然是共享文件夹~

首先,我们停下之前运行的docker,ummm,不停也行,习惯性离开就结束进程
这里写图片描述
然后,我们重新启动一个docker

docker run -p 8080:80 -d nginx -v /F/vue.js:/var/www/html

然后,如果你是windows系统的话,很遗憾,会和我一样,报错!!!

那,如何解决呢?

这里就牵涉到Docker for Windows 里的Shared Drives 设置,右键docker图标,打开setting,找到shared drives,设置你需要的磁盘
这里写图片描述

然后就没问题了!

第二种办法,也是最推荐的,copy 进去

docker cp index.html 21146://usr/share/nginx/html

熟悉linux的肯定很容易理解,没错,就是将当前文件夹内index.html文件移入id21148docker内的该目录下,来看具体演示:
这里写图片描述
这里写图片描述


最后一步,也是至关重要的,我该如何分享我的docker给别人使用呢?

先来看三个命令的不同效果

docker ps
docker ps -a
docker images

这里写图片描述

有没有发现感觉很不一样?2333

来解释一下吧,docker ps表示当前正在运行的dockerdocker ps -a表示所有的docker,包括已经运行结束了的,docker images 则表示所有的images

用一个通俗的话来说,images好比一个新的镜像,而这些docker像是一个个配置文件,你用这个配置去加载这个镜像,然后内容也不一样。

回到正题,比如说我加了index.html的这个docker我想弄成images分享给别人,我该怎么办?(注意,只有images才可以分享去给别人运行,理解成vmvare的vmx文件吧,ummm,不一定准确)

来看命令:

docker commit 21146 nginx-test:hahaha
docker images
docker rmi d10d

这里写图片描述

commit参数,没错,就是这个,很像git的提交操作哦~

nginx-test对应image namehahaha对应tag,至于删除操作,没错,rmi参数即可

或许你还想问,那那些配置文件一样的images该怎么删除呢?

使用rm参数即可
这里写图片描述

命令总结

这里写图片描述
这里写图片描述

查看评论

Docker变迁图,Docker命令一张图

  • qq_33728573
  • qq_33728573
  • 2017-02-14 19:12:39
  • 336

docker镜像详解 docker命令详解

这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。  当我对Doc...
  • u010098331
  • u010098331
  • 2016-12-06 12:20:30
  • 2625

docker架构的基本组成

docker主要有以下几部分组成: Docker Client 客户端 Docker daemon 守护进程 Docker Image 镜像 Docker Container 容器 Docker Re...
  • u014231523
  • u014231523
  • 2017-03-11 13:42:21
  • 1019

Docker常用命令一览

  • 2017年05月24日 17:20
  • 344KB
  • 下载

理解Docker架构

Docker是一个用于开发,发布和运行应用程序的开放平台。Docker被设计用于更快的交付你的应用。使用Dokcer,你可以将你的应用从基础设施中分离出来,并且向对待一个管理应用程序一样对待你的基础设...
  • hongbochen1223
  • hongbochen1223
  • 2016-07-02 12:08:42
  • 6421

docker 命令总结 v1.12

一 镜像 -- 通过当前目录 . 构建镜像 docker build -t="loomz/static_web" . 二 容器操作 创建容器 docker run  -i -t  images ...
  • loomz
  • loomz
  • 2016-09-30 17:11:12
  • 976

Docker学习总结(9)——Docker常用命令

容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]容器操作运维 — docker [ps|inspect|top|atta...
  • u012562943
  • u012562943
  • 2016-07-15 09:26:52
  • 3431

常用docker命令,及一些坑

常用docker命令,及一些坑 常用命令 查看容器的root用户密码 docker logs 2>&1 | grep '^User: ' | tail -n1 因为do...
  • wsscy2004
  • wsscy2004
  • 2014-05-15 11:11:10
  • 128617

docker 进入容器,及docker 的相关命令

风来了.fox 查看所有运行的容器 [html] view plain copy  print? docker ps   找到要进入的container id 然后用执...
  • a5601564
  • a5601564
  • 2017-06-02 10:53:49
  • 2389

通过docker run 命令来在容器内运行一个应用程序 输出Hello world

Docker “Hello World!” Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。 输出Hello world! [root@...
  • LLQ_200
  • LLQ_200
  • 2017-07-21 14:50:29
  • 1520
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 19万+
    积分: 3299
    排名: 1万+
    友情链接
    博客专栏