设为首页 收藏本站
查看: 557|回复: 0

[经验分享] 63 docker(2)

[复制链接]

尚未签到

发表于 2018-5-28 11:00:57 | 显示全部楼层 |阅读模式
  01docker网络模型详解
  

  1、容器的网络模型
  (1)closed container
  [root@node1 ~]# docker run -it --name test --rm --net none busybox:latest /bin/sh
  / # ifconfig -a
  lo        Link encap:Local Loopback  
    inet addr:127.0.0.1  Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING  MTU:65536  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  #仅有lo接口,没有其他网络接口
  

  (2)bridged container
  [root@node1 ~]# docker run -it --rm --name test busybox:latest /bin/sh
  / # ifconfig
  eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
    inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
    inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric: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)
  

  lo        Link encap:Local Loopback  
    inet addr:127.0.0.1  Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING  MTU:65536  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  

  #启动时设定主机名  
  [root@node1 ~]# docker run -it --rm --name test -h myhost.magedu.com busybox:latest /bin/sh
  / # hostname
  myhost.magedu.com
  

  #启动时设定DNS
  [root@node1 ~]# docker run -it --rm --name test -h myhost.magedu.com --dns 172.16.0.1 busybox:latest /bin/sh
  / # nslookup docker.com
  Server:    172.16.0.1
  Address 1: 172.16.0.1
  

  nslookup: can't resolve 'docker.com'
  / # cat /etc/resolv.conf
  nameserver 172.16.0.1
  

  #启动时在hosts中设定域名解决
  [root@node1 ~]# docker run -it --rm --name test -h myhost.magedu.com --dns 172.16.0.1 --add-host "docker.com:172.16.100.1" busybox:latest /bin/sh
  / # nslookup docker.com
  Server:    172.16.0.1
  Address 1: 172.16.0.1
  

  Name:      docker.com
  Address 1: 172.16.100.1 docker.com
  / # cat /etc/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.16.100.1    docker.com
  172.17.0.2      myhost.magedu.com myhost
  

  #docker0 NAT桥模型上的容器发布给外部网络访问
  #把docker容器的80端口映射至主机上的某随机端口(从32768端口开始)
  [root@node1 ~]# docker run -it --rm -p 80 --net bridge --name web busybox:latest /bin/sh
  [root@node1 ~]# docker port web
  80/tcp -> 0.0.0.0:32768
  [root@node1 ~]# ss -tnl
  State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
  LISTEN      0      5      192.168.122.1:53                        *:*                  
  LISTEN      0      128           *:22                        *:*                  
  LISTEN      0      128    127.0.0.1:631                       *:*                  
  LISTEN      0      100    127.0.0.1:25                        *:*                  
  LISTEN      0      128          :::22                       :::*                  
  LISTEN      0      128         ::1:631                      :::*                  
  LISTEN      0      100         ::1:25                       :::*                  
  LISTEN      0      128          :::32768                    :::*               
  / # mkdir -p /web/html
  / # vi /web/html/index.html
  <h1>From Web Container</h1>
  / # httpd -f -v -h /web/html/
  宿主机访问
  http://192.168.1.131:32768
  

  [root@node1 ~]# iptables -t nat -vnL
  Chain PREROUTING (policy ACCEPT 64 packets, 5989 bytes)
   pkts bytes target     prot opt in     out     source               destination         
     65  4596 DOCKER     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
  

  Chain INPUT (policy ACCEPT 63 packets, 5760 bytes)
   pkts bytes target     prot opt in     out     source               destination         
  

  Chain OUTPUT (policy ACCEPT 91 packets, 5686 bytes)
   pkts bytes target     prot opt in     out     source               destination         
  3   180 DOCKER     all  --  *      *       0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL
  

  Chain POSTROUTING (policy ACCEPT 98 packets, 6074 bytes)
   pkts bytes target     prot opt in     out     source               destination         
     89  5619 MASQUERADE  all  --  *      !docker0  172.17.0.0/16        0.0.0.0/0           
  0     0 MASQUERADE  tcp  --  *      *       172.17.0.3           172.17.0.3           tcp dpt:80
  

  Chain DOCKER (2 references)
   pkts bytes target     prot opt in     out     source               destination         
  0     0 RETURN     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0           
  7   388 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:32768 to:172.17.0.3:80
  #在POSTROUTING和DOCKER中各添加一条规则,一旦容器被删除,添加的规则自动被删除
  

  #将主机的80端口映射至容器的80端口
  [root@node1 ~]# docker run -it --rm -p 80:80 --net bridge --name web busybox:latest /bin/sh
  [root@node1 ~]# docker port web
  80/tcp -> 0.0.0.0:80
  

  #发布所有端口,指明要公开的端口为80,8080,443
  [root@node1 ~]# docker run -it --rm -P  --expose 80 --expose 8080 --expose 443 --net bridge --name web busybox:latest /bin/sh
  [root@node1 ~]# docker port web
  80/tcp -> 0.0.0.0:32771
  8080/tcp -> 0.0.0.0:32769
  443/tcp -> 0.0.0.0:32770
  [root@node1 ~]# docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                                                                    NAMES
  7cf269b12b50        busybox:latest      "/bin/sh"           About a minute ago   Up About a minute   0.0.0.0:32771->80/tcp, 0.0.0.0:32770->443/tcp, 0.0.0.0:32769->8080/tcp   web
  
  (3) 联盟式容器
  启动一个容器joind_web,让其使用已经存在的容器web的网络名称空间
  

  #跟已存在的web容器的IP地址一样
  [root@node1 ~]# docker run --rm --name joided_web --net container:web busybox:latest ifconfig -aeth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
    inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
    inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric: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)
  

  lo        Link encap:Local Loopback  
    inet addr:127.0.0.1  Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING  MTU:65536  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  / # ifconfig
  eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
    inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
    inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    RX packets:12 errors:0 dropped:0 overruns:0 frame:0
    TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:1066 (1.0 KiB)  TX bytes:996 (996.0 B)
  

  lo        Link encap:Local Loopback  
    inet addr:127.0.0.1  Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING  MTU:65536  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
  

  #跟已存在的web容器监听的端口一样
  / # httpd
  / # netstat -tan
  Active Internet connections (servers and established)
  Proto Recv-Q Send-Q Local Address           Foreign Address         State      
  tcp        0      0 :::80                   :::*                    LISTEN   
  [root@node1 ~]# docker run --rm --name joided_web --net container:web busybox:latest netstat -tan
  Active Internet connections (servers and established)
  Proto Recv-Q Send-Q Local Address           Foreign Address         State      
  tcp        0      0 :::80                   :::*                    LISTEN
  

  #容器使用宿主机的网络地址
  [root@node1 ~]# docker run -it --rm  --net host --name web busybox:latest /bin/sh
  / # ifconfig
  docker0   Link encap:Ethernet  HWaddr 02:42:F5:88:C0:2F  
    inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
    inet6 addr: fe80::42:f5ff:fe88:c02f/64 Scope:Link
    UP BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:2698 errors:0 dropped:0 overruns:0 frame:0
    TX packets:3447 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:156234 (152.5 KiB)  TX bytes:10177850 (9.7 MiB)
  

  eno16777736 Link encap:Ethernet  HWaddr 00:0C:29:50:27:C4  
    inet addr:192.168.1.131  Bcast:192.168.1.255  Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:fe50:27c4/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    RX packets:679372 errors:0 dropped:6 overruns:0 frame:0
    TX packets:247168 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:375438208 (358.0 MiB)  TX bytes:46560004 (44.4 MiB)
  

  lo        Link encap:Local Loopback  
    inet addr:127.0.0.1  Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING  MTU:65536  Metric:1
    RX packets:6951 errors:0 dropped:0 overruns:0 frame:0
    TX packets:6951 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:21397144 (20.4 MiB)  TX bytes:21397144 (20.4 MiB)
    
  [root@node1 ~]# docker run -it --rm  --net host --name web centos:latest /bin/bash
  [root@node1 /]# yum  -y install iproute
  [root@node1 /]# ip addr list
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
     valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
     valid_lft forever preferred_lft forever
  2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 00:0c:29:50:27:c4 brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.131/24 brd 192.168.1.255 scope global eno16777736
     valid_lft forever preferred_lft forever
  inet6 fe80::20c:29ff:fe50:27c4/64 scope link
     valid_lft forever preferred_lft forever
  3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
  link/ether 02:42:f5:88:c0:2f brd ff:ff:ff:ff:ff:ff
  inet 172.17.0.1/16 scope global docker0
     valid_lft forever preferred_lft forever
  inet6 fe80::42:f5ff:fe88:c02f/64 scope link
     valid_lft forever preferred_lft forever
  [root@node1 /]# yum -y install httpd
  

  [root@node1 ~]# docker run --name web --net bridge busybox:latest httpd
  [root@node1 ~]# docker ps -a
  CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES
  9f9591b73bb2        busybox:latest      "httpd"             About a minute ago   Exited (0) About a minute ago                       web
  [root@node1 ~]# docker rm web
  web
  [root@node1 ~]# docker run --name web --net bridge busybox:latest httpd -f
  [root@node1 ~]# docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  ca8b05d52a28        busybox:latest      "httpd -f"          47 seconds ago      Up 45 seconds                           web
  [root@node1 ~]# docker kill web
  web
  [root@node1 ~]# docker rm web
  web
  

  #让docker容器在后台运行
  [root@node1 ~]# docker  run -d --name web --net bridge -p 80:80 busybox:latest httpd -f  
  c9455d2691b7b72689893119d257937c74242c325b4c3d4f2bdb099cbee6700f
  [root@node1 ~]# docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
  c9455d2691b7        busybox:latest      "httpd -f"          50 seconds ago      Up 48 seconds       0.0.0.0:80->80/tcp   web
  
  inspect命令:
  #查看IP地址
  [root@node1 ~]# docker inspect -f ``.`NetworkSettings`.`IPAddress` web
  172.17.0.2
  #查看进程号
  [root@node1 ~]# docker inspect -f ``.`State`.`Pid` web                        
  62887
  

  [root@node1 ~]# docker top web
  UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
  root                62887               18715               0                   21:27               ?                   00:00:00            httpd -f
  

  02dockerfile详解
  

  [root@node1 ~]# vim test.dockerfile
  # Mage Edu
  FROM busybox:latest
  MAINTAINER MageEdu <mage@magedu.com>
  COPY index.html /web/html/index.html
  

  EXPOSE 80/tcp
  

  CMD ["httpd", "-f", "-h", "/web/html"]
  

  [root@node1 ~]# vim index.html
  <h1>From Docker Container(Dockerfile)</h1>
  [root@node1 ~]# mkdir docker
  [root@node1 ~]# mv index.html docker/  
  [root@node1 ~]# mv test.dockerfile docker/
  [root@node1 ~]# docker build -f docker/test.dockerfile docker/
  Sending build context to Docker daemon 3.072 kB
  Step 1 : FROM busybox:latest
   ---> 7968321274dc
  Step 2 : MAINTAINER MageEdu <mage@magedu.com>
   ---> Running in f3d1afc8cab3
   ---> ad76be7eb604
  Removing intermediate container f3d1afc8cab3
  Step 3 : COPY index.html /web/html/index.html
   ---> 8b38e8071ddd
  Removing intermediate container b788fa3a1c94
  Step 4 : CMD httpd -f -h /web/html
   ---> Running in a2b6a483f15b
   ---> 2cde4a22e191
  Removing intermediate container a2b6a483f15b
  Successfully built 2cde4a22e191
  [root@node1 ~]# docker images
  REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
  <none>                       <none>              2cde4a22e191        4 minutes ago       1.11 MB
  centos                       newuser             4b761c9a987a        6 days ago          192.1 MB
  192.168.1.132:5000/busybox   1.2.1               7968321274dc        2 weeks ago         1.11 MB
  docker.io/busybox            latest              7968321274dc        2 weeks ago         1.11 MB
  docker.io/centos             latest              67591570dd29        6 weeks ago         191.8 MB
  

  [root@node1 ~]# docker build -f docker/test.dockerfile -t busybox:webserver docker/
  Sending build context to Docker daemon 3.072 kB
  Step 1 : FROM busybox:latest
   ---> 7968321274dc
  Step 2 : MAINTAINER MageEdu <mage@magedu.com>
   ---> Using cache
   ---> ad76be7eb604
  Step 3 : COPY index.html /web/html/index.html
   ---> Using cache
   ---> 8b38e8071ddd
  Step 4 : CMD httpd -f -h /web/html
   ---> Using cache
   ---> 2cde4a22e191
  Successfully built 2cde4a22e191  
  

  [root@node1 ~]# docker images
  REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
  busybox                      webserver           2cde4a22e191        7 minutes ago       1.11 MB
  centos                       newuser             4b761c9a987a        6 days ago          192.1 MB
  192.168.1.132:5000/busybox   1.2.1               7968321274dc        2 weeks ago         1.11 MB
  docker.io/busybox            latest              7968321274dc        2 weeks ago         1.11 MB
  docker.io/centos             latest              67591570dd29        6 weeks ago         191.8 MB
  

  [root@node1 ~]# docker build -f docker/test.dockerfile -t busybox:web2 docker/
  Sending build context to Docker daemon 3.072 kB
  Step 1 : FROM busybox:latest
   ---> 7968321274dc
  Step 2 : MAINTAINER MageEdu <mage@magedu.com>
   ---> Using cache
   ---> ad76be7eb604
  Step 3 : COPY index.html /web/html/index.html
   ---> Using cache
   ---> 8b38e8071ddd
  Step 4 : EXPOSE 80/tcp
   ---> Running in caad20a45dd8
   ---> 95351c4c60d3
  Removing intermediate container caad20a45dd8
  Step 5 : CMD httpd -f -h /web/html
   ---> Running in 3b6066935b57
   ---> ec5bd0d26b61
  Removing intermediate container 3b6066935b57
  Successfully built ec5bd0d26b61
  [root@node1 ~]# docker images
  REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
  busybox                      web2                ec5bd0d26b61        7 seconds ago       1.11 MB
  busybox                      webserver           2cde4a22e191        10 minutes ago      1.11 MB
  centos                       newuser             4b761c9a987a        6 days ago          192.1 MB
  192.168.1.132:5000/busybox   1.2.1               7968321274dc        2 weeks ago         1.11 MB
  docker.io/busybox            latest              7968321274dc        2 weeks ago         1.11 MB
  docker.io/centos             latest              67591570dd29        6 weeks ago         191.8 MB
  

  [root@node1 ~]# docker ps
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
  c9455d2691b7        busybox:latest      "httpd -f"          2 days ago          Up 2 days           0.0.0.0:80->80/tcp   web
  [root@node1 ~]# docker kill web
  web
  [root@node1 ~]# docker rm web
  web
  

  [root@node1 ~]# docker run -d busybox:web2
  d57228046a3d1261a80de72f528a5b01a322961bfd8be867da13f276c95f3a3a
  

  [root@node1 ~]# docker ps
  CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
  d57228046a3d        busybox:web2        "httpd -f -h /web/htm"   About a minute ago   Up About a minute   80/tcp              focused_goodall
  

  [root@node1 ~]# docker port d57228046a3d
  [root@node1 ~]# docker kill d57228046a3d
  d57228046a3d
  

  [root@node1 ~]# docker run -d --name web -P busybox:web2
  4e0f3885a830d94decdbf2789266de7fb8a507659245854daf124799ce05e028
  

  [root@node1 ~]# docker port web
  80/tcp -> 0.0.0.0:32772
  

  http://192.168.1.131:32772
  

  测试成功
  

  

  03dockerfile详解
  [root@node1 ~]# mkdir docker-httpd
  [root@node1 ~]# cd docker-httpd/
  FROM centos:latest
  MAINTAINER MageEdu "<mage@magedu.com>"
  

  RUN sed -i -e 's@^mirrorlist.*repo=os.*$@baseurl=http://172.16.0.1/cobbler/ks_mirror/$releaserver/@g' -e '/^mirrorlist.*repo=updates/a enabled=0' -e
  '/^mirrorlist.*repo=extras/a enabled=0' /etc/yum.repos.d/CentOS-Base.repo && \
      yum -y install httpd php php-mysql php-mbstring && \
      yum clean all && \
      echo -e '<?php\n\tphpinfo();\n?>' > /var/www/html/info.php
  

  EXPOSE 80/tcp
  

  CMD ["/usr/sbin/httpd","-f","/etc/httpd/conf/httpd.conf","-DFOREGROUND"]
  [root@node1 docker-httpd]# docker build -f httpd.df -t httpd:2.4 ./
  Sending build context to Docker daemon 2.048 kB
  Step 1 : FROM centos:latest
   ---> 67591570dd29
  Step 2 : MAINTAINER MageEdu "<mage@magedu.com>"
   ---> Using cache
   ---> f6eacba2a721
  Step 3 : RUN yum -y install httpd php php-mysql php-mbstring &&         yum clean all &&   echo -e '<?php\n\tphpinfo();\n?>' > /var/www/html/info.php
   ---> Using cache
   ---> f1a8a2a4ee60
  Step 4 : EXPOSE 80/tcp
   ---> Running in fe4b765dcbfd
   ---> c02172ed48ed
  Removing intermediate container fe4b765dcbfd
  Step 5 : CMD /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DFOREGROUND
   ---> Running in 2a073274d5d3
   ---> 8fe09a670fb9
  Removing intermediate container 2a073274d5d3
  Successfully built 8fe09a670fb9
  

  [root@node1 docker-httpd]# docker images
  REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
  httpd                        2.4                 8fe09a670fb9        3 minutes ago       266.7 MB
  busybox                      web2                ec5bd0d26b61        About an hour ago   1.11 MB
  busybox                      webserver           2cde4a22e191        About an hour ago   1.11 MB
  centos                       newuser             4b761c9a987a        6 days ago          192.1 MB
  192.168.1.132:5000/busybox   1.2.1               7968321274dc        2 weeks ago         1.11 MB
  docker.io/busybox            latest              7968321274dc        2 weeks ago         1.11 MB
  

  [root@node1 docker-httpd]# docker run --rm --name httpd -P httpd:2.4
  [root@node1 ~]# docker port httpd
  80/tcp -> 0.0.0.0:32774
  [root@node1 ~]# docker kill httpd
  [root@node1 docker-httpd]# docker run -d --name httpd -p 80:80 httpd:2.4
  [root@node1 ~]# docker ps
  CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
  2e0a3ba92f18        httpd:2.4           "/usr/sbin/httpd -f /"   40 seconds ago      Up 38 seconds       0.0.0.0:80->80/tcp   httpd
  2e0a3ba92f18674b848924eaa40ab66cbd1a66669847526e366f2af4dda0872d
  

  [root@node1 ~]# docker ps
  CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
  2e0a3ba92f18        httpd:2.4           "/usr/sbin/httpd -f /"   7 minutes ago       Up 7 minutes        0.0.0.0:80->80/tcp   httpd
  [root@node1 ~]# docker stop httpd
  httpd
  

  [root@node1 ~]# docker rm httpd
  httpd
  

  [root@node1 docker-httpd]# vim httpd.df
  FROM centos:latest
  MAINTAINER MageEdu "<mage@magedu.com>"
  

  RUN yum -y install httpd php php-mysql php-mbstring && \
      yum clean all && \
      echo -e '<?php\n\tphpinfo();\n?>' > /var/www/html/info.php
  

  VOLUME /var/www/html
  EXPOSE 80/tcp
  

  CMD ["/usr/sbin/httpd","-f","/etc/httpd/conf/httpd.conf","-DFOREGROUND"]
  [root@node1 docker-httpd]# docker build -f httpd.df -t httpd:0.1 ./
  Sending build context to Docker daemon 2.048 kB
  Step 1 : FROM centos:latest
   ---> 67591570dd29
  Step 2 : MAINTAINER MageEdu "<mage@magedu.com>"
   ---> Using cache
   ---> f6eacba2a721
  Step 3 : RUN yum -y install httpd php php-mysql php-mbstring &&         yum clean all &&        echo -e '<?php\n\tphpinfo();\n?>' > /var/www/html/info.php
   ---> Using cache
   ---> f1a8a2a4ee60
  Step 4 : VOLUME /var/www/html
   ---> Running in 58ab7b732b00
   ---> a1dfec50fa16
  Removing intermediate container 58ab7b732b00
  Step 5 : EXPOSE 80/tcp
   ---> Running in 58d20c2ee361
   ---> 0142accd29d8
  Removing intermediate container 58d20c2ee361
  Step 6 : CMD /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DFOREGROUND
   ---> Running in 6772c7d6154f
   ---> 97b1901c5b98
  Removing intermediate container 6772c7d6154f
  Successfully built 97b1901c5b98
  [root@node1 ~]# docker run -it --rm --name httpd -p 80:80 httpd:0.1 /bin/bash
  [root@883df61186bc /]# ls /var/www/html/
  info.php
  [root@node1 docker-httpd]# ls /var/lib/docker/volumes/
  1adb8a2119488a4b9517e6890a4f89759bc0ad6fc9933227c445ea899d5327e1
  bf2b562a3277475a3695468352f2f944c75ca7ee2433be6d27294f3e1e332757
  [root@node1 docker-httpd]# ls /var/lib/docker/volumes/1adb8a2119488a4b9517e6890a4f89759bc0ad6fc9933227c445ea899d5327e1/_data/
  info.php
  [root@node1 docker-httpd]# cat /var/lib/docker/volumes/1adb8a2119488a4b9517e6890a4f89759bc0ad6fc9933227c445ea899d5327e1/_data/info.php
  <?php
          phpinfo();
  ?>
  [root@node1 docker-httpd]# docker stop httpd
  httpd
  [root@node1 ~]# mkdir -p /web/html
  [root@node1 ~]# unzip phpMyAdmin-4.0.5-all-languages.zip
  [root@node1 ~]# mv phpMyAdmin-4.0.5-all-languages /web/html/pma
  [root@node1 ~]# docker run -it --rm --name httpd -p 80:80 -v /web/html/:/var/www/html httpd:0.1 /bin/bash
  [root@e5ed9ebdb22e /]# ls /var/www/html/
  pma
  [root@node1 ~]# yum -y install mariadb-server
  [root@node1 ~]# vim /etc/my.cnf
  添加
  skip_name_resolve = on
  innodb_file_per_table = on
  [root@node1 ~]# systemctl start mariadb.service
  [root@node1 ~]# docker run -it --rm --name httpd -p 80:80 -v /web/html/:/var/www/html httpd:0.1 /bin/bash
  [root@6ff679ab00a9 /]# yum install iproute -y
  [root@6ff679ab00a9 /]# ip addr list
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
         valid_lft forever preferred_lft forever
      inet6 ::1/128 scope host
         valid_lft forever preferred_lft forever
  80: eth0@if81: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
      link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
      inet 172.17.0.2/16 scope global eth0
         valid_lft forever preferred_lft forever
      inet6 fe80::42:acff:fe11:2/64 scope link
         valid_lft forever preferred_lft forever
  [root@6ff679ab00a9 /]# exit
  MariaDB [(none)]> GRANT ALL ON *.* TO 'root'@'172.%.%.%' IDENTIFIED BY 'mageedu';
  MariaDB [(none)]> GRANT ALL ON *.* TO 'root'@'172.168.1.%' IDENTIFIED BY 'mageedu';   
  MariaDB [(none)]> FLUSH PRIVILEGES;
  MariaDB [(none)]> \q
  [root@node1 ~]# docker run -it --rm --name httpd -p 80:80 -v /web/html/:/var/www/html httpd:0.1
  http://192.168.1.131/pma/index.php
  [root@node1 docker-httpd]# openssl rand -base64 20
  8kl6zMcqb40pPlBmE0VrjezrVlM=
  

  [root@node1 docker-httpd]# cd /web/html/pma/
  [root@node1 pma]# cp config.sample.inc.php config.inc.php
  [root@node1 pma]# vim config.inc.php
  修改
  $cfg['blowfish_secret'] = 'a8b7c6d';
  
  $cfg['blowfish_secret'] = '8kl6zMcqb40pPlBmE0VrjezrVlM=';
  修改
  $cfg['Servers'][$i]['host'] = 'localhost';
  
  $cfg['Servers'][$i]['host'] = '192.168.1.131';
  
     
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482133-1-1.html 上篇帖子: 62 docker01 下篇帖子: docker简单介绍及安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表