formatuu 发表于 2018-5-28 11:00:54

62 docker01

  01docker基础原理
  

  

  

  02docker使用入门
  

  #安装
  # yum -y install docker-engine-*
  # yum -y install docker*
  

  #列出本地docker镜像
  # docker images
  

  #搜索docker镜像
  # docker search centos
  INDEX       NAME                                             DESCRIPTION                                     STARS   OFFICIAL   AUTOMATED
  docker.io   docker.io/centos                                 The official build of CentOS.                   3029            
  docker.io   docker.io/jdeathe/centos-ssh                     CentOS-6 6.8 x86_64 / CentOS-7 7.3.1611 x8...   56                  
  docker.io   docker.io/nimmis/java-centos                     This is docker images of CentOS 7 with dif...   23                  
  docker.io   docker.io/consol/centos-xfce-vnc               Centos container with "headless" VNC sessi...   18                  
  docker.io   docker.io/million12/centos-supervisor            Base CentOS-7 with supervisord launcher, h...   12                  
  docker.io   docker.io/nickistre/centos-lamp                  LAMP on centos setup                            9                  
  docker.io   docker.io/torusware/speedus-centos               Always updated official CentOS docker imag...   8                  
  docker.io   docker.io/egyptianbman/docker-centos-nginx-php   A simple and highly configurable docker co...   6                  
  docker.io   docker.io/nathonfowlie/centos-jre                Latest CentOS image with the JRE pre-insta...   5                  
  docker.io   docker.io/centos/mariadb55-centos7                                                               4                  
  docker.io   docker.io/consol/sakuli-centos-xfce            Sakuli JavaScript based end-2-end testing ...   3                  
  docker.io   docker.io/centos/tools                           Docker image that has systems administrati...   2                  
  docker.io   docker.io/harisekhon/centos-java               Java on CentOS (OpenJDK, tags jre/jdk7-8)       2                  
  docker.io   docker.io/blacklabelops/centos                   CentOS Base Image! Built and Updates Daily!   1                  
  docker.io   docker.io/centos/redis                           Redis built for CentOS                        1                  
  docker.io   docker.io/darksheer/centos                     Base Centos Image -- Updated hourly             1                  
  docker.io   docker.io/freenas/centos                         CentOS image enhanced with FreeNAS 10 meta...   1                  
  docker.io   docker.io/harisekhon/centos-scala                Scala + CentOS (OpenJDK tags 2.10-jre7 - 2...   1                  
  docker.io   docker.io/timhughes/centos                     Centos with systemd installed and running       1                  
  docker.io   docker.io/grayzone/centos                        auto build for centos.                        0                  
  docker.io   docker.io/januswel/centos                        yum update-ed CentOS image                      0                  
  docker.io   docker.io/kz8s/centos                            Official CentOS plus epel-release               0                  
  docker.io   docker.io/repositoryjp/centos                  Docker Image for CentOS.                        0                  
  docker.io   docker.io/vcatechnology/centos                   A CentOS Image which is updated daily         0                  
  docker.io   docker.io/wenjianzhou/centos                     centos                                          0                  
  

  # docker search busybox
  INDEX       NAME                                    DESCRIPTION                                     STARS   OFFICIAL   AUTOMATED
  docker.io   docker.io/busybox                         Busybox base image.                           911             
  docker.io   docker.io/progrium/busybox                                                                65                  
  docker.io   docker.io/radial/busyboxplus            Full-chain, Internet enabled, busybox made...   11                  
  docker.io   docker.io/container4armhf/armhf-busybox   Automated build of Busybox for armhf devic...   4                  
  docker.io   docker.io/odise/busybox-python                                                            4                  
  docker.io   docker.io/azukiapp/busybox                This image is meant to be used as the base...   2                  
  docker.io   docker.io/multiarch/busybox               multiarch ports of ubuntu-debootstrap         2                  
  docker.io   docker.io/elektritter/busybox-teamspeak   Leightweight teamspeak3 container based on...   1                  
  docker.io   docker.io/getblank/busybox                Docker container busybox for Blank            1                  
  docker.io   docker.io/odise/busybox-curl                                                            1                  
  docker.io   docker.io/ofayau/busybox-jvm            Prepare busybox to install a 32 bits JVM.       1                  
  docker.io   docker.io/ofayau/busybox-libc32         Busybox with 32 bits (and 64 bits) libs         1                  
  docker.io   docker.io/skomma/busybox-data             Docker image suitable for data volume cont...   1                  
  docker.io   docker.io/socketplane/busybox                                                             1                  
  docker.io   docker.io/cucy/busybox                  aoutobuild busybox                            0                  
  docker.io   docker.io/ddn0/busybox                  fork of official busybox                        0                  
  docker.io   docker.io/dpcrook/data-busybox            Data container for `/var/lib/mysql`,`/va...   0                  
  docker.io   docker.io/futurenda/busybox               Mini busybox                                    0                  
  docker.io   docker.io/ggtools/busybox-ubuntu          Busybox ubuntu version with extra goodies       0                  
  docker.io   docker.io/hongtao12310/busybox            for busybox image based on the gcr.io/goog...   0                  
  docker.io   docker.io/jahroots/busybox                Busybox containers                              0                  
  docker.io   docker.io/jiangshouzhuang/busybox         busybox                                       0                  
  docker.io   docker.io/oveits/docker-nginx-busybox   This is a tiny NginX docker image based on...   0                  
  docker.io   docker.io/prom/busybox                  Prometheus Busybox Docker base images         0                  
  docker.io   docker.io/sdurrheimer/prom-busybox      Moved to https://hub.docker.com/r/prom/bus...   0                  
  

  #下载docker镜像
  # docker pull busybox
  Using default tag: latest
  Trying to pull repository docker.io/library/busybox ...
  latest: Pulling from docker.io/library/busybox
  4b0bc1c4050b: Pull complete
  Digest: sha256:817a12c32a39bbe394944ba49de563e085f1d3c5266eb8e9723256bc4448680e
  Status: Downloaded newer image for docker.io/busybox:latest
  

  # docker images
  REPOSITORY          TAG               IMAGE ID            CREATED             SIZE
  docker.io/busybox   latest            7968321274dc      7 days ago          1.11 MB
  

  #运行docker镜像
  # docker run -it busybox:latest /bin/sh
  / # ls
  bin   dev   etc   homeprocrootrun   sys   tmp   usr   var
  

  #列出正在运行中的docker容器
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED            STATUS            PORTS               NAMES
  cc151d747319      busybox:latest      "/bin/sh"         About a minute ago   Up About a minute                     amazing_pike
  

  # docker pull centos
  

  #显示docker环境信息
  # docker info
  

  #显示docker版本
  # docker version
  Client:
   Version:         1.10.3
   API version:   1.22
   Package version: docker-common-1.10.3-59.el7.centos.x86_64
   Go version:      go1.6.3
   Git commit:      3999ccb-unsupported
   Built:         Thu Dec 15 17:24:43 2016
   OS/Arch:         linux/amd64
  

  Server:
   Version:         1.10.3
   API version:   1.22
   Package version: docker-common-1.10.3-59.el7.centos.x86_64
   Go version:      go1.6.3
   Git commit:      3999ccb-unsupported
   Built:         Thu Dec 15 17:24:43 2016
   OS/Arch:         linux/amd64
  
   #查看Docker镜像
   # docker images
  REPOSITORY          TAG               IMAGE ID            CREATED             SIZE
  docker.io/busybox   latest            7968321274dc      8 days ago          1.11 MB
  docker.io/centos    latest            67591570dd29      5 weeks ago         191.8 MB
  

  #运行docker镜像
  # docker run -it centos:latest /bin/bash
  # ls
  anaconda-post.logdevhomelib64       mediaopt   rootsbinsysusr
  bin                etclib   lost+foundmnt    procrun   srv   tmpvar
  

  #查看正在运行的docker容器
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         8 seconds ago       Up 6 seconds                            focused_jones
  67319a5a2333      centos:latest       "/bin/bash"         2 minutes ago       Up 2 minutes                            nauseous_hodgkin
  

  #centos镜像操作
  # cd /etc/yum.repos.d/
  # ls
  CentOS-Base.repo       CentOS-Media.repo    CentOS-fasttrack.repo
  CentOS-CR.repo         CentOS-Sources.repo
  CentOS-Debuginfo.repoCentOS-Vault.repo
  # ifconfig
  bash: ifconfig: command not found
  # ip addr list
  bash: ip: command not found
  # yum install iproute
  

  

  # ifconfig
  docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500
        inet 172.17.0.1netmask 255.255.0.0broadcast 0.0.0.0
        inet6 fe80::42:f5ff:fe88:c02fprefixlen 64scopeid 0x20<link>
        ether 02:42:f5:88:c0:2ftxqueuelen 0(Ethernet)
        RX packets 2451bytes 138194 (134.9 KiB)
        RX errors 0dropped 0overruns 0frame 0
        TX packets 3344bytes 10168092 (9.6 MiB)
        TX errors 0dropped 0 overruns 0carrier 0collisions 0
  

  eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500
        inet 192.168.1.131netmask 255.255.255.0broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe50:27c4prefixlen 64scopeid 0x20<link>
        ether 00:0c:29:50:27:c4txqueuelen 1000(Ethernet)
        RX packets 418211bytes 307762406 (293.5 MiB)
        RX errors 0dropped 6overruns 0frame 0
        TX packets 213558bytes 17636171 (16.8 MiB)
        TX errors 0dropped 0 overruns 0carrier 0collisions 0
  
  #删除正在运行的docker容器
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         10 minutes ago      Up 10 minutes                           focused_jones
  67319a5a2333      centos:latest       "/bin/bash"         12 minutes ago      Up 12 minutes                           nauseous_hodgkin
  # docker kill 67319a5a2333
  67319a5a2333
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         10 minutes ago      Up 10 minutes                           focused_jones
  

  #显示所有的docker容器,包括已关掉的
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         11 minutes ago      Up 11 minutes                                     focused_jones
  67319a5a2333      centos:latest       "/bin/bash"         13 minutes ago      Exited (137) 51 seconds ago                     nauseous_hodgkin
  cc151d747319      busybox:latest      "/bin/sh"         23 hours ago      Exited (0) 21 hours ago                           amazing_pike
  

  #移除docker容器
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         14 minutes ago      Up 13 minutes                                    focused_jones
  67319a5a2333      centos:latest       "/bin/bash"         16 minutes ago      Exited (137) 3 minutes ago                     nauseous_hodgkin
  cc151d747319      busybox:latest      "/bin/sh"         23 hours ago      Exited (0) 21 hours ago                        amazing_pike
  # docker rm cc151d747319
  cc151d747319
  # docker ps -a         
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         14 minutes ago      Up 14 minutes                                    focused_jones
  67319a5a2333      centos:latest       "/bin/bash"         16 minutes ago      Exited (137) 3 minutes ago                     nauseous_hodgkin
  

  #基于正在运行的容器创建新容器
  # docker run -it centos:latest /bin/bash
  # cd home/
  # useradd centos
  # id centos
  uid=1000(centos) gid=1000(centos) groups=1000(centos)
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  94862d601473      centos:latest       "/bin/bash"         3 minutes ago       Up 3 minutes                            awesome_pare
  0010752b4dc8      busybox:latest      "/bin/sh"         21 minutes ago      Up 21 minutes                           focused_jones
  # docker commit 94862d601473 centos:newuser
  sha256:4b761c9a987a61d8d46414418839c6af74747fb6d56037fd39a8ac59449cea91
  # docker images
  REPOSITORY          TAG               IMAGE ID            CREATED             SIZE
  centos            newuser             4b761c9a987a      30 seconds ago      192.1 MB
  docker.io/busybox   latest            7968321274dc      8 days ago          1.11 MB
  docker.io/centos    latest            67591570dd29      5 weeks ago         191.8 MB
  # docker kill 94862d601473
  94862d601473
  # docker rm 94862d601473
  94862d601473
  # docker ps -a         
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         44 minutes ago      Up 44 minutes                           focused_jones
  # docker run -it --rm centos:latest /bin/bash
  # id centos
  id: centos: no such user
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND             CREATED            STATUS            PORTS               NAMES
  9da547098810      centos:latest       "/bin/bash"         About a minute ago   Up About a minute                     romantic_gates
  0010752b4dc8      busybox:latest      "/bin/sh"         47 minutes ago       Up 47 minutes                           focused_jones
  # docker kill 9da547098810
  9da547098810
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  0010752b4dc8      busybox:latest      "/bin/sh"         48 minutes ago      Up 48 minutes                           focused_jones
  # docker run -it --rm centos:newuser /bin/bash
  # id centos
  uid=1000(centos) gid=1000(centos) groups=1000(centos)
  

  03docker应用进阶
  

  # docker run busybox:latest /bin/echo "hello world"
  hello world
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND                  CREATED            STATUS                        PORTS               NAMES
  8b48c5872eb8      busybox:latest      "/bin/echo 'hello wor"   About a minute ago   Exited (0) About a minute ago                     goofy_jepsen
  0010752b4dc8      busybox:latest      "/bin/sh"                About an hour ago    Exited (137) 24 seconds ago                         focused_
  # docker start 8b48c5872eb8
  8b48c5872eb8
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
  8b48c5872eb8      busybox:latest      "/bin/echo 'hello wor"   4 minutes ago       Exited (0) 35 seconds ago                        goofy_jepsen
  0010752b4dc8      busybox:latest      "/bin/sh"                About an hour ago   Exited (137) 3 minutes ago                     focused_jones
  

  # docker run -it --name=busybox busybox:latest /bin/sh
  # docker ps
  CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
  f1c0c44b7ad4      busybox:latest      "/bin/sh"         36 seconds ago      Up 35 seconds                           busybox
  # docker stop busybox
  busybox
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND             CREATED            STATUS                        PORTS               NAMES
  f1c0c44b7ad4      busybox:latest      "/bin/sh"         About a minute ago   Exited (137) 27 seconds ago                     busybox
  # docker start busybox
  busybox
  # docker attach busybox
  / # ifconfig
  eth0      Link encap:EthernetHWaddr 02:42:AC:11:00:02
            inet addr:172.17.0.2Bcast:0.0.0.0Mask:255.255.0.0
            inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
            UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
            RX packets:8 errors:0 dropped:0 overruns:0 frame:0
            TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:0
            RX bytes:648 (648.0 B)TX bytes:648 (648.0 B)
  
  # docker run busybox:latest /bin/echo "hello world"
  hello world
  # docker ps -a
  CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
  7339054ab26a      busybox:latest      "/bin/echo 'hello wor"   25 seconds ago      Exited (0) 23 seconds ago                     fervent_carson
  f1c0c44b7ad4      busybox:latest      "/bin/sh"                13 minutes ago      Up 6 minutes                                    busybox
  # docker start 7339054ab26a
  7339054ab26a
  # docker logs 7339054ab26a
  hello world
  hello world
  

  # docker start -i busybox
  

  

  04docker应用进阶
  

  #使用docker hub
  # docker login
  Username (fkuefcpso):
  Password:
  WARNING: login credentials saved in /root/.docker/config.json
  Login Succeeded
  

  

  #创建私有仓库
  # cd /etc/yum.repos.d/
  # vim CentOS-Base.repo
  在和下分别添加
  enabled=1
  # yum clean all
  # yum repolist
  # yum -y install docker-registry
  # vim /etc/docker-registry.yml
  # vim /etc/sysconfig/docker-registry
  # systemctl start docker-registry.service
  

  # docker logout
  # docker images
  REPOSITORY          TAG               IMAGE ID            CREATED             SIZE
  centos            newuser             4b761c9a987a      24 hours ago      192.1 MB
  docker.io/busybox   latest            7968321274dc      9 days ago          1.11 MB
  docker.io/centos    latest            67591570dd29      5 weeks ago         191.8 MB
  # docker tag 7968321274dc 192.168.1.132:5000/busybox:1.2.1
  # docker images
  REPOSITORY                   TAG               IMAGE ID            CREATED             SIZE
  centos                     newuser             4b761c9a987a      24 hours ago      192.1 MB
  192.168.1.132:5000/busybox   1.2.1               7968321274dc      9 days ago          1.11 MB
  docker.io/busybox            latest            7968321274dc      9 days ago          1.11 MB
  docker.io/centos             latest            67591570dd29      5 weeks ago         191.8 MB
  # docker push 192.168.1.132:5000/busybox:1.2.1
  The push refers to a repository
  unable to ping registry endpoint https://192.168.1.132:5000/v0/
  v2 ping attempt failed with error: Get https://192.168.1.132:5000/v2/: EOF
   v1 ping attempt failed with error: Get https://192.168.1.132:5000/v1/_ping: EOF
  

  # cd /etc/yum.repos.d/
  # vim CentOS-Base.repo
  在和下分别添加
  enabled=1
  # vim /etc/sysconfig/docker
  修改
  #ADD_REGISTRY='--add-registry registry.access.redhat.com'
  为
  ADD_REGISTRY='--add-registry 192.168.1.132:5000'
  修改
  # INSECURE_REGISTRY='--insecure-registry'
  为
  INSECURE_REGISTRY='--insecure-registry 192.168.1.132:5000'
  # systemctl restart docker.service
  # docker push 192.168.1.132:5000/busybox:1.2.1
  The push refers to a repository
  38ac8d0f5bb3: Image successfully pushed
  Pushing tag for rev on {http://192.168.1.132:5000/v1/repositories/busybox/tags/1.2.1}
  # scp /etc/yum.repos.d/CentOS-Base.repo 192.168.1.133:/etc/yum.repos.d/
  

  # yum -y install docker
  # vim /etc/sysconfig/docker
  修改
  ##ADD_REGISTRY='--add-registry registry.access.redhat.com'
  为
  ADD_REGISTRY='--add-registry 192.168.1.132:5000'
  修改
  # INSECURE_REGISTRY='--insecure-registry'
  为
  INSECURE_REGISTRY='--insecure-registry 192.168.1.132:5000'
  # systemctl start docker.service
  # docker pull 192.168.1.132:5000/busybox:1.2.1
  # docker images
  REPOSITORY                   TAG               IMAGE ID            CREATED             SIZE
  192.168.1.132:5000/busybox   1.2.1               6f6e7813d8a1      9 days ago          1.11 MB
  

  #Docker的数据卷
  # docker run -it --name busybox2 -v /data busybox:latest
  / # ls
  bin   datadev   etc   homeprocrootrun   sys   tmp   usr   var
  / # cd /data/
  /data # ls
  /data # cp /etc/hosts .
  /data # ls
  hosts
  # ls /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/
  _data
  # ls /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/_data/
  hosts
  /data # vi hosts
  添加
  new line
  # cat /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/_data/hosts
  127.0.0.1       localhost
  ::1   localhost ip6-localhost ip6-loopback
  fe00::0 ip6-localnet
  ff00::0 ip6-mcastprefix
  ff02::1 ip6-allnodes
  ff02::2 ip6-allrouters
  172.17.0.2      4504beabeeae
  new line
  #宿主机的文件同步被修改
  
  # docker rm busybox2
  busybox2
  

  cat # /var/lib/docker/volumes/bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757/_data/hosts
  127.0.0.1       localhost
  ::1   localhost ip6-localhost ip6-loopback
  fe00::0 ip6-localnet
  ff00::0 ip6-mcastprefix
  ff02::1 ip6-allnodes
  ff02::2 ip6-allrouters
  172.17.0.2      4504beabeeae
  new line
  #容器被删除后数据卷的文件还存在
  

  
页: [1]
查看完整版本: 62 docker01