docker 理解和一些应用

1。镜像和容器是两个东西 一定要先理解,不然后期可能绕一点弯路

镜像:如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像

docker images   :可以查看我们当前可使用的镜像

容器:是生成的

以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:

docker run -it ubuntu /bin/bash   :生成一个容器可以操作

  -i  交互式操作 

  -t    终端

  -d   后台运行,不会进入容器

  /bin/bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

容器:
docker ps -a 查看所有的容器 stop 《容器的id》 停止容器 restart 《容器的id》 重启 exec 如果从这个容器退出,不会导致这个容器的停止 《docker exec -it 243c32535da7 /bin/bash
       attach 这个容器会停止
  
       port 《容器的id》查看指定映射的端口
 docker export 1e560fca3906 > ubuntu.tar 导出为镜像 cat docker/ubuntu.tar | docker import - test/ubuntu:v1 导入(镜像) 



 docker rm -f 1e560fca3906  删除一个容qi

 

//导出的要为tar或者tar.gz //导入的是镜像,不是容器,docker images 可以查看

 

镜像
docker search httpd  搜索镜像
     images    查看镜像
     pull       获取新的镜像
     rmi    删除镜像
创建镜像:
  1。从已经创建的容器中更新镜像,并且提交这个镜像
     docker run -t -i ubuntu:15.10 /bin/bash
      apt-get update(在容器中运行)
     在完成操作之后,输入 exit 命令来退出这个容器。此时 ID 为 e218edb10161 的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本
    docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
    -m:提交的描述信息   -a:作者  
   2.我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像
   vim  Dockerfile  
   代码为:
    FROM    centos:6.7
    MAINTAINER      Fisher "fisher@sudops.com"
    
    RUN     /bin/echo 'root:123456' |chpasswd
    RUN     useradd runoob
    RUN     /bin/echo 'runoob:123456' |chpasswd
    RUN     /bin/echo -e "LANG="en_US.UTF-8"" >/etc/default/local
    EXPOSE  22
    EXPOSE  80
    CMD     /usr/sbin/sshd -D
  
      每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

      第一条FROM,指定使用哪个镜像源

      RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。

      然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

   

      runoob@runoob:~$ docker build -t runoob/centos:6.7 .
      Sending build context to Docker daemon 17.92 kB
      Step 1 : FROM centos:6.7
       ---> d95b5ca17cc3
      Step 2 : MAINTAINER Fisher "fisher@sudops.com"
       ---> Using cache
       ---> 0c92299c6f03
      Step 3 : RUN /bin/echo 'root:123456' |chpasswd
       ---> Using cache
       ---> 0397ce2fbd0a
      Step 4 : RUN useradd runoob
      ......

    -t :指定要创建的目标镜像名

    . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
      我们可以使用新的镜像来创建容器
      
      runoob@runoob:~$ docker run -t -i runoob/centos:6.7  /bin/bash
      [root@41c28d18b5fb /]# id runoob
      uid=500(runoob) gid=500(runoob) groups=500(runoob)
      从上面看到新镜像已经包含我们创建的用户 runoob。
设置镜像标签:
  docker tag 860c279d2fec runoob/centos:dev   会看到860c279d2fec会多一个标签tag

  

Docker Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

 

原文地址:https://www.cnblogs.com/aoxueshou/p/13256900.html