docker run [OPTIONS] IMAGE[:TAG|DIGEST] [COMMAND] [ARG...]
docker를 이용하여 이미지를 컨테이너를 생성한다.
Operator exclusive options
이미지 개발자가 아니라 컨테이너를 생성하는 시점에만 줄 수 있는 옵션들
- Detached vs foreground
- Detached (-d)
- Foreground
- Container identification
- Name (--name)
- PID equivalent
- IPC settings (--ipc)
- Network settings
- Restart policies (--restart)
- Clean up (--rm)
- Runtime constraints on resources
- Runtime privilege and Linux capabilities
Foreground에 추가될 수 있는 옵션들
- -a=[] : Attach to
STDIN
,STDOUT
and/orSTDERR
- -t : Allocate a pseudo-tty
- --sig-proxy=true : Proxy all received signals to the process (non-TTY mode only)
- -i : Keep STDIN open even if not attached
- -a=[] : Attach to
IPC Modes - 자세히
Value Description "" Use daemon's default "none" Own private IPC namespace, with /dev/shm not mounted "private" Own private IPC namespace "shareable" Own private IPC namespace, with a possibility to share it with other containers "container: <name-or-ID>" Join another ("shareable") container's IPC namespace "host" Use the host system's IPC namespace Network Settings - 자세히
--dns=[] : Set custom dns servers for the container --network="bridge" : Connect a container to a network 'bridge': create a network stack on the default Docker bridge 'none': no networking 'container:<name|id>': reuse another container's network stack 'host': use the Docker host network stack '<network-name>|<network-id>': connect to a user-defined network --network-alias=[] : Add network-scoped alias for the container --add-host="" : Add a line to /etc/hosts (host:IP) --mac-address="" : Sets the container's Ethernet device's MAC address --ip="" : Sets the container's Ethernet device's IPv4 address --ip6="" : Sets the container's Ethernet device's IPv6 address --link-local-ip=[] : Sets one or more container's Ethernet device's link local IPv4/IPv6 addresses
기본값으로 모든 컨테이너들은 네트워크가 켜져있고, 외부와 연결될 수 있다.
컨테이너의 네트워크를 끄고 싶다면,
docker run --network none
처럼--network none
옵션을 추가해주면 된다.재시작 정책 (--restart) - 자세히
Policy Result no (기본값) 컨테이너가 종료되더라도 재시작하지 않음 on-failure[:max-retries] 컨테이너의 종료 코드가 0이 아닐 때(= 비정상종료), 재시작한다. max-retries를 지정할 수 있고, 지정하지 않으면 무한대로 설정된다. docker inspect
명령을 이용하여 재시작 횟수, 마지막 재시작 시각 등을 조회할 수 있다.always 종료 코드는 무시하고 계속 컨테이너를 재시작한다. unless-stopped 컨테이너를 stop
되기 전까지 항상 재시작한다. (서버 재부팅 시, 컨테이너를 다시 실행)Clean Up (--rm)
기본적으로 컨테이너의 파일 시스템은 컨테이너가 종료된 후에도 유지된다.
하지만 짧은 포그라운드 프로세스를 실행하는 경우에 불필요하다면
--rm
옵션을 주면 프로세스 종료 시, 파일 시스템이 제거된다.Security Configuration - 자세히
Specify an init process
--init
옵션을 주면, PID가 1인 init 프로세스로 시작할 수 있다.Runtime constaints on resources - 자세히
Memory, CPU, I/O 등 자원에 대한 제약사항을 설정하는 부분
Runtime privilege and linux Capabilities - 자세히
Option Description --cap-add Add linux capabilities --cap-drop Drop linux capabilities --privileged Give extended privileges to this container --device=[] Allows you to run devices inside the container without the --privilged flag
리눅스의 Capability는 여기를 참고.
- Logging drivers (--log-driver) - 자세히
References:
반응형
'2021 > 개발' 카테고리의 다른 글
Spring Boot - An illegal reflective access operation has occurred (0) | 2021.04.24 |
---|---|
JWT(JSON Web Token) (0) | 2021.02.06 |
인증서 유효성 검증 방법 (0) | 2021.01.03 |
Ubuntu apt-get update 실패 (0) | 2021.01.03 |
CPU 정보 확인하기 (0) | 2021.01.03 |