docker container run 명령 개요
- docker container run 구문은 도커에서 가장 중요하고 기능이 많기에 사실상 가장 핵심적인 내용이다.
- docker run 명령어는 pull, create, start 3가지를 모두 수행한다.
- 이미지가 없이 run을 수행하면 이미지를 받고, 컨테이너를 생성하고, 시작도 수행한다. 시작하면서 명시한 명령도 수행한다.
#docker container(안써도됨) run [옵션] 도커이미지명[:태그] [명령어]
※ 명령의 옵션은 크게 4가지로 나뉜다.
• 컨테이너 설정 옵션
• 네트워크 설정 옵션
• 환경변수 설정 옵션
• 자원제한 설정 옵션
도커 서버가 아닌 도커 서버-클라이언트로 구성된 경우 (즉, 서버는 따로 있고 내가 명령어 치는 곳이 클라이언트인 경우) 클라이언트에서 docker run 을 수행하면, 도커 서버의 docker daemon에 의해 실행되고, 결과를 클라이언트가 받아서 볼 수 있다.
컨테이너 설정 옵션
※ 참고 : 컨테이너의 "종료"
- 대부분의 컨테이너는 명령어에 /bin/bash를 넣으면, 해당 컨테이너에 진입할 수 있다.
- 컨테이너 진입한 후, exit를 입력하면 쉘에서 나가는게 아니고, 컨테이너를 "종료" 한다.
- 컨테이너에 인수를 넣으면, 그 인수를 "가진" 컨테이너로써 생성된다.
- 원래 컨테이너는 인수 없이 컨테이너에 구축된 내용 그대로 사용한다.
- 하지만 필요한 경우와 여러가지 사용을 위해 인수(명령어)를 추가하여 컨테이너를 실행한다.
- 컨테이너를 종료하지 않으려면, ctrl+p+q를 입력하여 빠져나올 수 있다.
Ex)
#docker container run centos
- 아무 일도 없이 컨테이너가 종료된다. 받은 인수가 없어 할 일이 없기 때문이다.
#docker container run -itd centos
- 컨테이너가 백그라운드로 작동하고, 표준 입력 터미널이 열린 상태가 된다. 컨테이너가 계속 유지된다.
#docker container run centos /bin/cal
- 아래와 같이 결과가 나오며 컨테이너가 종료된다. 받은 인수의 결과를 리턴하고 더이상 할 일이 없기 때문이다.
#docker container run -itd centos /bin/cal
- 아무 결과도 없이 컨테이너가 종료된다. 백그라운드에서 /bin/cal을 실행하고 종료되었기 때문이다.
#docker container run -it centos /bin/ping localhost
- 컨테이너로 진입 후 계속 핑을 날리게 된다.
- 끝없이. ctrl+p+q로 빠져 나가면 이것은 백그라운드로 계속 ping을 날리는 중이다.
- 컨테이너는 살아있다.
- 만약 ctrl+p+q로 빠져 나가지 않고 exit로 나갔다면, 해당 명령이 끝나므로 컨테이너는 종료된다.
네트워크 설정 옵션
포트 번호같은 네트워크 설정을 통해 외부에서 컨테이너의 프로세스에 액세스하도록 설정할 수 있고,
컨테이너끼리 통신도 할 수 있는 여러가지 네트워크 통신을 설정할 수 있다.
포트 설정
#docker container run -d -p 8080:80 nginx
- nginx라는 이미지를 바탕으로 컨테이너를 생성하고, 백그라운드에서 실행한다.
- 그리고 호스트 포트 8080과 컨테이너 포트 80을 매핑한다. (0.0.0.0:8080->80/tcp)
- 즉 이 명령을 실행하여 컨테이너를 만든 후, 브라우저 등에서 호스트의 8080에 엑세스하면 컨테이너에서 작동하고 있는 nginx(80번포트) 서비스에 엑세스할수 있다.
DNS 서버 설정
#docker container run -d --dns 192.168.1.1 nginx
MAC 주소 설정
#docker container run -d --mac-address="92:d0:c6:0a:29:33" centos
- docker container inspect --format="{{ .Config.MacAddress }} 로 실제 설정값 확인 가능
/etc/hosts에 호스트명과 ip주소 정의하기
#docker container run -it --add-host test.com:192.168.1.1 centos
컨테이너 호스트명 설정
#docker container run -it --hostname www.host.com
- 이 값은 자신의 /etc/hosts에도 자동으로 적용된다.
도커 네트워크 명시하여 연결
#docker container run -itd --name=webap --net=web-network nginx
- nginx 이미지이고 이름이 webap인 컨테이너를 web-network라는 도커 네트워크에 연결한다.
'IT Technology > Cloud' 카테고리의 다른 글
Docker 기본 명령어 목록 (0) | 2021.06.30 |
---|---|
컨테이너 기술과 도커 개념 (Container, Docker) (0) | 2021.05.31 |
Docker 기본 명령어 (정보확인, 관리) (0) | 2021.05.01 |
도커 이미지란? Docker image ? (0) | 2021.04.22 |
Dockerfile 상세 구문 (0) | 2021.04.17 |