zoukankan      html  css  js  c++  java
  • docker学习笔记3 容器 container

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

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

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

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

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

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

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

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

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

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

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

    容器的命令都以docker container开头,也可以简写,比如docker container ps -a = docker ps -a,但是更清楚一些,新手更明白一些,写脚本也建议这么写。同理,image的命令都以docker image 开头。。。。 

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

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

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

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

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

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

    docker container run 镜像名或镜像ID

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

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

    像centos ubuntu之类的OS baseimage,启动的时候:  docker container -it -d 镜像名或镜像ID              这样才能把OS启动起来,并且一直运行不exit。但容器的理念是:一个容器,一个服务。OS baseimage更多的是用来做新镜像用,不需要长时间运行,一般是进去baseimage,做变更,然后commit一个新image。

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

    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导入镜像存储文件,效果差不多,但是容器快照文件会少历史记录和元数据信息,体积小,另一个信息更全一些,体积也更大。

  • 相关阅读:
    hdu 1017 A Mathematical Curiosity 解题报告
    hdu 2069 Coin Change 解题报告
    hut 1574 组合问题 解题报告
    hdu 2111 Saving HDU 解题报
    hut 1054 Jesse's Code 解题报告
    hdu1131 Count the Trees解题报告
    hdu 2159 FATE 解题报告
    hdu 1879 继续畅通工程 解题报告
    oracle的系统和对象权限
    oracle 自定义函数 返回一个表类型
  • 原文地址:https://www.cnblogs.com/alpha118/p/10334051.html
Copyright © 2011-2022 走看看