이번 포스팅에서는 도커의 주요 옵션들에 대해서 다룬다. 옵션들이 각 명령어에 따라 세부적으로 무수히 많지만, 그중에서 컨테이너 실행 및 관리 명령어(docker run
)에서 추가하는 옵션들에 대해서 다룬다.
💻옵션(1): --rm
--rm : 컨테이너 실행이 종료된 후 자동으로 해당 컨테이너를 삭제하도록 설정하는 옵션 이 옵션을 사용하면 컨테이너가 종료되면서 불필요한 파일 시스템이나 리소스를 남기지 않게 된다.
<format>
docker run --rm <image-name>
<example>
docker run --rm ghcr.io/autowarefoundation/autoware:universe
컨테이너에 접속 후, 일을 끝마쳐서 exit를 누르면 컨테이너도 자동으로 사라진다.
💻옵션(2): -d, -detach
-d, -detach: 백그라운드에서 컨테이너를 실행하는 옵션
💻옵션(3): --name <이름>
--name <이름>: 컨테이너 이름을 지정하는 옵션
<example>
docker run \
--name="ros2_container" \
osrf/ros:humble-desktop-full
💻옵션(4): -it, --privileged
-it: 인터렉티브 모드(-i)와 TTY(-t)를 활성화하는 옵션 --privileged: 컨테이너에 거의 모든 권한을 부여하는 옵션 (보통 두 옵션을 같이 묶어서 쓴다)
<example>
docker run \
-it \
--privileged \
osrf/ros:humble-desktop-full
💻옵션(5): -p <호스트포트>:<컨테이너포트>
-p <호스트포트>:<컨테이너포트>: 포트 매핑
💻옵션(6): -v <호스트디렉터리>:<컨테이너디렉터리>
-v <호스트디렉터리>:<컨테이너디렉터리>: 볼륨 마운트 보통 ros를 컨테이너에 올릴 경우 그래픽 공유가 빌표한데, 이때 그래픽 전용 볼륨을 마운트 하는 경우가 흔하다. ***-> -v=/tmp/.X11-unix:/tmp/.X11-unix:ro ***
<example>
docker run \
-v=/tmp/.X11-unix:/tmp/.X11-unix:ro \
-v=/dev:/dev \
-v=/home/admin2/ros2_ws:/workspace \
-w=/workspace \
osrf/ros:humble-desktop-full
💻옵션(7): -w
-w: 컨테이너 접속시 기본적으로 내가 시작하는 디렉터리 위치 보통 (작업을 시작하는 디렉터리 위치)를 -w옵션의 값으로 두고, 이는 위에서 언급한 볼륨 마운트를 위한 컨테이너 디렉터리 위치와 같은 값으로 세팅하는 것이 일반적이다.
<example>
docker run \
-v=/home/admin2/ros2_ws:/workspace \
-w=/workspace \
-it \
osrf/ros:humble-desktop-full
💻옵션(8): --env, -e <KEY=VALUE>
--env, -e <KEY=VALUE>: 환경변수를 설정하는 옵션
<example>
docker run \
-e "MY_ENV=hello"
ubuntu
Ghost