docker的简单命令运用(run exec)

哈哈,最近因为一些原因,开始接触了docker,虽然它的一些好处还是半知半解,但是最近摸出了一点点它的用法,哈哈

下面列出文章中会用到的一些docker命令(ps:我是在windows下装的docker,所以不知道是不是跟linux的用法会不会有些差别)

docker run,docker exec,docker start,docker stop,docker ps ,docker ps -a

1.docker run 

这个命令是用来新建一个与image相关的container,有点对一个程序建了好几个进程的感觉,在docker里面,我觉得container可以理解成进程的意思。这个要注意的是:docker run 命令是新建一个进程,这是什么意思呢,就是比如说,你对这个image运行了两遍docker run命令,就意味着建立了两个container,而这两个container是完全独立,不相关的,这也就意味着,你在其中其中一个container中放入的文件(即一般要运行的程序)或曾经对这个ocntainer配置过的配置文件在另一个container是完全看不到的,即使是对同一个image。(因为我曾经就是没理解,乱用,搞得docker乱糟糟的。。)

docker run 后可以接好几个参数:-i, -t, -p(我只列出我用到的。。)

教程上是这么指明 -i ,和 -t 这两个参数的

-i: 指的是允许用户对容器内的标准输入(stdin)进行交互
-t: 指的是在新容器内指定一个伪终端或终端。。

好的,我知道你们很懵,没事,我也很懵,但我理解的就是可以在本机的终端上,伪造一个container内部的终端来对container进行控制。(这部分我没详细研究过,)

重要的是,我觉得-p这个参数是真的好哇!!

-p 这个参数主要是进行docker内部的的端口和主机的端口映射。

为什么我觉得这个参数好呢,在这里我是将docker理解成一个机器了,机器内在运行你指定的程序,

为什么在这里将docker理解成一个机器(或者环境?)呢?因为你进入docker后,你可以在docker里面放置多个可以执行的程序(即container),这时候如果想外部访问你这个运行的程序,就得通过端口号标识(计算机网络应用层的知识?)

即docker内部的端口标识container?

那机器里肯定会有端口跟外部映射,那外部端口又怎么理解呢?为什么要做端口映射?

因为外部不能直接访问docker内部的端口,他能访问到的只有你docker所在的主机的端口号,因此如果想访问到docker内部的程序即docker的端口号,就要将主机的端口与docker的端口相映射,这样的话,外界如果想要发数据给你docker内部的程序,只要将数据发送到主机的端口就可以了,主机会再转发给docker。

从这个意义上的话,我觉得docker的一个好处应该就出来了。

就是如果在服务器要部署多个程序的话,但是很可能每个程序所需要的环境都不一样,而且很可能环境会产生冲突,所以如果全在主机上布置程序所需要的环境的话,很可能就会乱七八糟的。而docker解决了一个什么问题呢?我觉得他最大的好处就是,可以将布置好的多个环境相互隔离,而且这些布置好的环境还跟你要运行的程序相适配,哇,这就很完美了啊!!这就使得服务器上可以独立运行多个程序无干扰。完美!

。。嗯。。写一个docker run写了这么多。。

最后列一个docker run运行的例子/

docker run -i -t -p 6666:7777 ubuntu:15.10 /bin/bash

猜你喜欢

转载自blog.csdn.net/yolan6824/article/details/82805305