1. root@ubuntu:~# docker network create --driver=bridge --subnet=10.10.10.0/24 --gateway=10.10.10.1 my-net

    root@ubuntu:~# docker network create --driver=bridge --subnet=10.10.10.0/24 --gateway=10.10.10.1 my-net
    1e6f6c3b9995342d1331dd36250a5f6bbedf56e69029a1f5ad5a2b42787407c1
    
  2. root@ubuntu:~# docker network ls

    root@ubuntu:~# docker network ls
    NETWORK ID     NAME      DRIVER    SCOPE
    e17e10bea72e   bridge    bridge    local
    e7d368ac9ba7   host      host      local
    1e6f6c3b9995   my-net    bridge    local
    2e7e0f9b2738   none      null      local
    
  3. root@ubuntu:~# docker network inspect my-net

  4. root@ubuntu:~# docker run -d --name net-test --net my-net httpd

    root@ubuntu:~# docker run -d --name net-test --net my-net httpd
    07715fb1addf0c5fa8d2c242d8cccecd86d269d804b525652e2ae4faae7ad61b
    
  5. root@ubuntu:~# docker inspect net-test | grep IPAddr

    root@ubuntu:~# docker inspect net-test | grep IPAddr
    				"SecondaryIPAddresses": null,
    				"IPAddress": "",
    						"IPAddress": "10.10.10.2",
    
  6. root@ubuntu:~# docker run -d --name net-test2 --net my-net centos:7

    root@ubuntu:~# docker run -d --name net-test2 --net my-net centos:7
    [root@f1f841f7a840 /]#
    
  7. [root@f1f841f7a840 /]# ping 10.10.10.2

    [root@f1f841f7a840 /]# ping 10.10.10.2
    PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data.
    64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=0.210 ms
    64 bytes from 10.10.10.2: icmp_seq=2 ttl=64 time=0.100 ms
    ^C
    --- 10.10.10.2 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1013ms
    rtt min/avg/max/mdev = 0.100/0.155/0.210/0.055 ms
    

    container끼리도 통신이 된다.

  8. (Ctrl+p+q)

  9. root@ubuntu:~# docker exec net-test2 ls

    root@ubuntu:~# docker exec net-test2 ls
    anaconda-post.log
    bin
    dev
    etc
    home
    lib
    lib64
    media
    mnt
    opt
    proc
    root
    run
    sbin
    srv
    sys
    tmp
    usr
    var
    

    container 밖에서 container 내부에 명령을 한다. 즉 위의 출력 결과는 net-test2에서 ls를 입력한 결과다.

  10. root@ubuntu:~# docker exec -it net-test2 /bin/bash [root@f1f841f7a840 /]#

    container로 진입한다.

  11. root@ubuntu:~# docker ps -q

    root@ubuntu:~# docker ps -q
    f1f841f7a840
    07715fb1addf
    81d04c495f7c
    
  12. root@ubuntu:~# docker ps -aq

    root@ubuntu:~# docker ps -aq
    f1f841f7a840
    07715fb1addf
    81d04c495f7c
    
  13. root@ubuntu:~# docker rm -f $(docker ps -aq)

    root@ubuntu:~# docker rm -f $(docker ps -aq)
    df1f841f7a840
    07715fb1addf
    81d04c495f7c
    
  14. root@ubuntu:~# docker ps -a

    root@ubuntu:~# docker ps -a
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    
  15. root@ubuntu:~# docker run -it -w=/working -e WORK=/working centos:7 /bin/bash

    root@ubuntu:~# docker run -it -w=/working -e WORK=/working centos:7 /bin/bash
    [root@98e74a15f23f working]#
    
  16. [root@98e74a15f23f working]# pwd

    [root@98e74a15f23f working]# pwd
    /working
    
  17. [root@98e74a15f23f working]# echo $WORK

    [root@98e74a15f23f working]# echo $WORK
    /working
    
  18. root@ubuntu:~# docker ps

    root@ubuntu:~# docker ps
    CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
    98e74a15f23f   centos:7   "/bin/bash"   3 minutes ago   Up 3 minutes             **infallible_poincare**
    
  19. root@ubuntu:~# touch cptest.txt root@ubuntu:~# docker cp ./cptest.txt infallible_poincare:/working/cptest.txt root@ubuntu:~# docker exec infallible_poincare ls /working cptest.txt

    root@ubuntu:~# docker cp ./cptest.txt infallible_poincare:/working/cptest.txt
    root@ubuntu:~# docker exec infallible_poincare ls /working
    cptest.txt
    

    내 host에 있는 파일(cptest.txt)을 container 안으로 복사한 후 확인한 것.

    어쨌든 명령어 형식은 cp <SRC> <DEST>로 동일하다.

  20. root@ubuntu:~# docker cp infallible_poincare:/working/cptest.txt ../cptest.txt root@ubuntu:~# ls ..

    root@ubuntu:~# docker cp infallible_poincare:/working/cptest.txt ../cptest.txt
    root@ubuntu:~# ls ..
    bin         dev   lib    libx32      mnt   root  snap      sys  var
    boot        etc   lib32  lost+found  opt   run   srv       tmp
    **cptest.txt**  home  lib64  media       proc  sbin  swap.img  usr
    

    복사가 된 것을 확인할 수 있다.