docker学习笔记3 容器 container

容器从镜像(images)中来,可以想象成:images是光碟,用光碟给机器装系统、装软件,装好的app就是容器(container)

--------------------------------------------------------------------------

docker run   创建并启动容器,后台会进行以下操作:

1、检查本地是否有image,没有的话会自动去下载,内网的机器就只能从harbor里下载好;

2、利用image创建一个容器,并启动该容器;

3、分配一个文件系统给容器,并在只读的镜像层外挂载一层可读写层,相当于mount一个目录给容器,所以docker的存储要设计好,否则很容易就存储爆掉;

4、从宿主机配置的网桥接口中桥接一个虚拟接口给容器;

5、从网桥的地址池中分配一个IP给容器,大部分是172开头;

6、执行用户指定的应用程序;

7、执行完毕后容器自动终止。

docker ps -a   可以看到所有运行、停止的容器

docker start 容器ID    启动一个已经存在容器

docker stop 容器ID    停止一个正在运行的容器,停不掉就用kill

docker rm 容器ID       删除一个已经停止的容器

docker logs 容器ID      看容器的输出,但只输出一次,用起来不是很方便

docker run 镜像名或镜像ID

以上命令也可以用 docker container XXX  运行。从安全的角度出发,带container更安全一些,建议写脚本的时候带上,更直观的指导这些命令用于操作容器。

docker container run -it  镜像名或镜像ID /bin/bash        -t让docker分配一个未终端并绑定到容器的标准输入上,-i则让容器的标准输入保持打开;/bin/bash用的是镜像里的/bin/bash作为bash命令,这个在image里面必须要有。这个命令可以运行容器了以后,自动就进入容器内部,是进入容器的一种方法。exit出来以后,容器就停止了,处于exited状态。

docker container run -d 镜像名或镜像ID      以守护模式(daemon,或者说,在后台运行)运行容器

-------------------------------------------------------------------

docker container exec -it 容器ID  /bin/bash         进入一个正在运行中的容器,-it保持标准输入并分配伪终端,/bin/bash和上面的意思一样,是进入容器的推荐方式。

-------------------------------------------------------------------

导出容器,运行、不运行状态的容器都可以导出,便于迁移。导出的是容器快照

docker container export -o xxx.tar  容器ID

导入容器,其实是导入容器相关的镜像。将导出的tar文件传到另一个环境,先导成image,再从image启动容器。

docker  image import xxx.tar 镜像名:tag

docker image import导入容器快照,和docker image load导入镜像存储文件,效果差不多,但是容器快照文件会少历史记录和元数据信息,体积小,另一个信息更全一些,体积也更大。

猜你喜欢

转载自www.cnblogs.com/alpha118/p/10334051.html
今日推荐