2021. 10. 19. 23:34ㆍIT/Docker
1. docker 컨테이너 2개 실행
nusevoli@nusevoli:~$ docker run -d --rm --name ubuntu0 ubuntu:xenial tail -f /dev/null
d2e4753477f1bea65622b96f3c757840f9b98f7b1578d5959ee80fae551a5674
nusevoli@nusevoli:~$ docker run -d --rm --name ubuntu1 ubuntu:xenial tail -f /dev/null
c1c0db1d1aec00b6f694dc21c9ee34db75f69a77af47965c16d7c8eeb9223de7
nusevoli@nusevoli:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1c0db1d1aec ubuntu:xenial "tail -f /dev/null" 9 minutes ago Up 9 minutes ubuntu1
d2e4753477f1 ubuntu:xenial "tail -f /dev/null" 9 minutes ago Up 9 minutes ubuntu0
2. A컨테이너(ubuntu0)에서 B컨테이너로 ping
nusevoli@nusevoli:~$ docker exec ubuntu0 ping c1c0db1d1aec
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "ping": executable file not found in $PATH: unknown
ping이 안 깔려있네?!
apt install iputils-ping 명령으로 각각 설치해주고, 다시 시도
nusevoli@nusevoli:~$ docker exec ubuntu0 ping c1c0db1d1aec
ping: unknown host c1c0db1d1aec
host를 못찾는다고?
3. 네트워크 생성 후 연결
nusevoli@nusevoli:~$ docker network create net0
be77ee1f6df8e16e0e305695184514ed864dea8d4b961d5dceda0848e510fe94
nusevoli@nusevoli:~$ docker network connect net0 ubuntu0
nusevoli@nusevoli:~$ docker network connect net0 ubuntu1
4. ping 재시도
nusevoli@nusevoli:~$ docker exec ubuntu0 ping c1c0db1d1aec
PING c1c0db1d1aec (172.19.0.3) 56(84) bytes of data.
64 bytes from ubuntu1.net0 (172.19.0.3): icmp_seq=1 ttl=64 time=0.057 ms
64 bytes from ubuntu1.net0 (172.19.0.3): icmp_seq=2 ttl=64 time=0.081 ms
nusevoli@nusevoli:~$ docker exec ubuntu1 ping d2e4753477f1
PING d2e4753477f1 (172.19.0.2) 56(84) bytes of data.
64 bytes from ubuntu0.net0 (172.19.0.2): icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from ubuntu0.net0 (172.19.0.2): icmp_seq=2 ttl=64 time=0.074 ms
같은 네트워크에 연결된 컨테이너들은 host이름으로 통신가능
=> TCP통신, REST API호출 등등 가능하다는 의미!!!