• 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 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

     

  • 相关阅读:
    MVC3、如何应用EntityFramework 连接MySql 数据库 Kevin
    DEV EXPRESS Summary Footer 不显示 Kevin
    装饰模式 Kevin
    Dev 控件 GridControl 控件 二次绑定数据源的问题。 Kevin
    System.InvalidOperationException 异常 Kevin
    LINQ to XML Kevin
    代理模式——代码版“吊丝的故事” Kevin
    VS2012 中的设备 面板 Kevin
    maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程
    maven 学习笔记(一)eclipse+android+maven
  • 原文地址:https://www.cnblogs.com/aoxueshou/p/13256900.html
Copyright © 2020-2023  润新知