반응형
🐳 docker run 인자 완전 정복 – 컨테이너 실행의 모든 것
📌 docker run의 기본 구조
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- OPTIONS: 컨테이너 실행을 제어하는 다양한 인자(옵션)들
- IMAGE: 실행할 Docker 이미지 이름
- COMMAND: 컨테이너가 실행할 명령어
- ARG: 명령어에 전달할 인자
🎯 자주 사용하는 docker run 옵션 인자들
1. -d (Detached Mode: 백그라운드 실행)
docker run -d nginx
- 컨테이너를 백그라운드에서 실행
- 터미널에 묶이지 않고 실행되므로 서버 실행에 유용
2. --name (컨테이너 이름 지정)
docker run --name my_web nginx
- 자동 생성되는 무작위 이름 대신, 식별하기 쉬운 이름 부여
- 이후 docker stop my_web처럼 이름으로 관리 가능
3. -p (포트 매핑)
docker run -p 8080:80 nginx
- 호스트의 8080 포트를 컨테이너의 80 포트에 연결
- 외부에서 접근 가능해지는 중요한 설정
4. -v (볼륨 마운트)
docker run -v /my/host/path:/usr/share/nginx/html nginx
- 호스트의 디렉터리를 컨테이너 내부에 연결
- 개발 중 코드 자동 반영, 데이터 유지 등에 활용
5. -e (환경 변수 설정)
docker run -e MYSQL_ROOT_PASSWORD=1234 mysql
- 환경 변수 설정을 통해 애플리케이션 구성 가능
- 주로 데이터베이스 컨테이너에서 비밀번호, 포트 설정 등에 사용
6. --rm (종료 시 컨테이너 자동 삭제)
docker run --rm ubuntu echo "hello"
- 일회성 테스트나 스크립트 실행에 적합
- 실행 후 자동으로 컨테이너 삭제
7. -it (터미널 인터랙션 + 입력)
docker run -it ubuntu bash
- 컨테이너 내부에 bash 쉘로 접속
- 개발자나 운영자가 직접 명령을 입력하고 테스트할 수 있음
8. --network (네트워크 설정)
docker run --network host nginx
- 컨테이너가 호스트 네트워크를 그대로 사용
- 보안 또는 성능 최적화 시 유용
9. --restart (자동 재시작 정책)
docker run --restart=always nginx
- 시스템 재부팅이나 오류 종료 후 자동 재시작
- no, on-failure, always, unless-stopped 등 다양한 정책 사용 가능
10. --privileged (특권 모드)
docker run --privileged alpine
- 컨테이너가 호스트 시스템의 모든 권한을 갖게 됨
- 시스템 장치 접근 필요할 때 사용 (주의 필요)
🧪 종합 예제
docker run -d \
--name my_nginx \
-p 8080:80 \
-v ~/myapp:/usr/share/nginx/html \
--restart=always \
nginx
이 명령어는 다음을 의미합니다:
- 백그라운드에서 nginx 컨테이너 실행
- 컨테이너 이름은 my_nginx
- 호스트 포트 8080 → 컨테이너 80포트 매핑
- 로컬 디렉터리 ~/myapp을 nginx 루트 디렉터리로 마운트
- 재부팅 후 자동 재시작 설정
💡 docker run vs docker start
구분 docker run docker start
기능 | 새 컨테이너 생성 및 실행 | 이미 존재하는 중지된 컨테이너 재실행 |
사용 시점 | 처음 실행할 때 | 멈춘 컨테이너 재시작할 때 |
옵션 사용 | 가능 | 제한적 (docker create로 만든 옵션 기반) |
🔍 실무에서 유용한 팁
- 개발 중인 웹 앱을 실시간 반영하고 싶다면 -v 옵션 활용
- 데이터베이스 컨테이너는 꼭 -e로 비밀번호 설정
- CI/CD 파이프라인에서 자동화하려면 --rm + -it 조합 추천
- 운영 환경에선 --restart=always로 장애 대응
✅ 정리
- docker run은 컨테이너를 생성하고 실행하는 가장 핵심적인 명령어입니다.
- 다양한 인자를 조합하면 컨테이너의 네트워크, 볼륨, 환경변수, 자동 재시작 등을 유연하게 설정할 수 있습니다.
- 실무에서는 보안과 성능을 고려한 --network, --privileged, --restart 등의 옵션도 중요합니다.
도커는 개발자뿐 아니라 DevOps, 인프라 엔지니어에게도 필수 도구입니다. docker run 명령어에 익숙해지면, 도커를 자유자재로 다룰 수 있는 능력이 확실히 올라갑니다. 위 내용을 실습과 함께 적용해보며 익혀보세요. 궁금한 점은 댓글로 남겨 주세요!
반응형
'Program' 카테고리의 다른 글
AutoIt으로 메모장 자동화하기 – 키보드 입력까지 완전 정복 (2) | 2025.06.11 |
---|---|
AutoIt으로 Hello World! – 자동화 스크립트의 첫걸음 (2) | 2025.06.11 |
docker container unpause 명령어 완벽 가이드 – 일시 정지된 컨테이너 다시 실행하기 (0) | 2025.06.11 |
docker container top 명령어 완전 정복 – 컨테이너 내부 프로세스 확인하기 (0) | 2025.06.11 |
Docker docker container stop 명령어 완전 정복: 예제와 함께 알아보기 (0) | 2025.06.11 |