컨테이너의 네트워크 설정
Docker run 명령어는 네트워크 옵션을 다음과 같이 지원합니다.
Option | Description |
--add-host=[호스트명:IP 주소] | 컨테이너의 /etc/hosts에 호스트명과 IP 주소를 정의 |
--dns=[IP 주소] | 컨테이너용 DNS 서버의 IP 주소 지정 |
--expose | 지정한 범위의 포트 번호를 할당 |
--mac-address=[MAC 주소] | 컨테이너의 MAC 주소를 지정 |
--hostname, -h | 컨테이너 자신의 호스트명 지정 |
--publish, -p[호스트의 포트 번호:컨테이너의 포트 번호] |
호스트와 컨테이너의 포트 매핑 |
--publish-all, -P | 호스트의 임의의 포트를 컨테이너에 할당 |
다음의 명령은 nginx라는 이름의 이미지를 바탕으로 test라는 이름의 컨테이너를 생성하고 백그라운드에서 실행하면서 호스트의 포트 번호 8000과 컨테이너의 포트 번호 80을 매핑시킵니다. 따라서 이 명령을 실행하고 호스트의 8000 포트에 접근하면 컨테이너에서 작동하고 있는 nginx (80 포트)에 접근할 수 있습니다.
docker run -d -p 8000:80 --name test nginx
또한 -P 옵션을 사용하면 호스트 머신의 임의의 포트를 할당합니다.
다음 명령을 실행하고 컨테이너 안의 /etc/hosts 를 확인하면 컨테이너의 호스트명이 정의되어 있는 것을 확인할 수 있습니다.
docker run -it --hostname test --add-host test.com:192.168.1.1 --name test centos
자원을 지정하여 컨테이너 실행
CPU나 메모리와 같은 자원을 지정하여 컨테이너를 생성할 수 있습니다.
Options | Description |
--cpu-shares, -c | CPU의 사용 배분 |
--memory, -m | 사용할 메모리를 제한하여 실행 |
--volume=[호스트의 디렉토리: 컨테이너의 디렉토리], -v | 호스트와 컨테이너의 디렉토리를 공유 |
컨테이너를 시작할 때 해당 컨테이너의 CPU와 메모리의 자원 이용을 제한할 수 있는데 메모리의 사용량은 --memory 옵션으로, CPU 시간은 --cpu-shares 옵션으로 지정할 수 있습니다. cpu-shares에는 기본값으로 1024가 들어가고 memory는 256m 이 들어갑니다. 다음 명령어로 cpu 사용량을 절반으로 줄이면서 사용 메모리를 1기가로 할당할 수 있습니다. 또한 -v 옵션으로 호스트의 디렉토리와 컨테이너의 디렉토리를 공유할 수 있습니다. 이때 주의할 점은 디렉토리의 절대 경로가 들어가야 합니다.
docker run --cpu-shares=512 --memory=1g centos
컨테이너 시작환경 설정
컨테이너의 환경변수나 컨테이너 안의 작업 디렉토리 등을 지정하여 컨테이너를 실행할 수 있습니다.
Options | Description |
--env=[환경변수], -e | 환경변수 설정 |
--env-file=[파일명] | 환경변수를 파일로부터 설정 |
--workdir=[경로], -w | 컨테이너의 작업 디렉토리 지정 |
-u, --user=[사용자명] | 사용자명 지정 |
다음 명령어를 통해 컨테이너를 시작할 때 환경변수를 설정할 수 있습니다. 혹은 환경변수 설정 파일을 미리 만들어놓았을 경우 --env-file 옵션을 통해 파일명을 지정하면 설정 파일대로 환경변수가 설정됩니다. 또한 -w 옵션을 통해 /test_dir 경로를 작업 경로로 지정할 수 있습니다. (컨테이너 접속 시 /test_dir 경로로 접속합니다)
docker run -it -e foo=bar -w=/test_dir centos
'Computer > Docker' 카테고리의 다른 글
Dockerfile (2) - RUN, CMD, ENTRYPOINT (1) | 2021.04.30 |
---|---|
Dockerfile (1) - 개요 (0) | 2021.04.29 |
Docker container 실행 - docker run (1) (2) | 2021.04.13 |
Docker 이미지 커맨드 (0) | 2021.04.03 |
Docker의 작동 구조 (0) | 2021.03.27 |