📌 기본 설명
docker
는 Docker CLI의 기본 명령어입니다.- Docker 시스템 설정에 따라
docker
명령어 앞에sudo
를 붙여야 할 수 있습니다. sudo
없이 사용하고 싶다면, 시스템 관리자가docker
라는 Unix 그룹을 만들고 해당 유저를 그룹에 추가하면 됩니다.
🔗 운영체제별 Docker 설치 및 sudo 설정은 공식 설치 문서를 참고하세요.
🆘 도움말 보기
- 명령어 뒤에
--help
옵션을 붙이면 해당 명령의 도움말을 확인할 수 있습니다.
docker run --help
📦 docker run
사용법
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- 이미지로부터 컨테이너를 생성하고 실행합니다.
⚙️ 주요 옵션 예시
옵션 | 설명 |
---|---|
--add-host | 호스트-IP 매핑 추가 |
-a, --attach | 표준 입출력에 연결 (stdin, stdout, stderr) |
-it | 상호작용 모드 + 터미널 할당 |
-d | 백그라운드 실행 (detached mode) |
--name | 컨테이너 이름 지정 |
예시:
docker run -it --name my_container ubuntu /bin/bash
🌍 환경 변수
Docker CLI는 다양한 환경 변수를 지원합니다.
변수 | 설명 |
---|---|
DOCKER_HOST | 연결할 Docker 데몬 소켓 주소 |
DOCKER_TLS_VERIFY | TLS 인증 사용 여부 |
DOCKER_CONFIG | 설정 파일 위치 변경 |
HTTP_PROXY / HTTPS_PROXY | 프록시 설정 |
NO_PROXY | 프록시 제외 대상 |
DOCKER_CONTEXT | 사용할 Docker 컨텍스트 |
DOCKER_CONTENT_TRUST | 이미지 서명 사용 여부 |
🔧 구성 파일 (config.json)
- 기본 위치:
~/.docker/config.json
docker
명령어의 일부 동작을 이 파일로 설정할 수 있음
설정 예시
{
"psFormat": "table {{.ID}}\t{{.Image}}\t{{.Command}}",
"detachKeys": "ctrl-e,e",
"credsStore": "secretservice",
"proxies": {
"default": {
"httpProxy": "http://proxy.example.com:3128",
"httpsProxy": "https://proxy.example.com:3129"
}
}
}
🔒 인증 및 크레덴셜 저장
옵션 | 설명 |
---|---|
credsStore | 모든 인증정보를 저장할 기본 외부 프로그램 지정 |
credHelpers | 특정 레지스트리에 대해 사용할 크레덴셜 헬퍼 지정 |
🔌 Docker 명령어 종류 (서브커맨드)
명령어 | 설명 |
---|---|
docker build | Dockerfile로 이미지 빌드 |
docker run | 컨테이너 실행 |
docker ps | 실행 중인 컨테이너 목록 |
docker stop | 컨테이너 정지 |
docker rm | 컨테이너 삭제 |
docker image | 이미지 관련 명령어 |
docker volume | 볼륨 관리 |
docker network | 네트워크 관리 |
docker compose | Docker Compose 사용 |
docker system | 시스템 리소스 관리 |
docker context | 컨텍스트 전환 및 설정 |
docker login/logout | 레지스트리 로그인/로그아웃 |
docker inspect | 컨테이너/이미지 상세 정보 출력 |
📡 데몬 소켓 연결 (-H
옵션)
스킴 | 설명 | 예시 |
---|---|---|
unix:// | Unix 소켓 | unix:///var/run/docker.sock |
tcp:// | TCP 연결 | tcp://192.168.0.10:2376 |
ssh:// | SSH 연결 | ssh://user@host |
npipe:// | Windows 파이프 | npipe:////./pipe/docker_engine |
예:
docker -H ssh://user@192.168.64.5 ps
🧪 실험적 기능
- Docker 20.10부터 일부 실험적 기능이 기본 활성화됨
- 일부 환경변수나 구성 항목은 “실험적”이며 향후 변경 가능성 있음
⚠️ 보안 주의사항
~/.docker/config.json
파일에는 인증 정보나 프록시 정보가 포함될 수 있음- 절대로 Git 등에 업로드하거나 공유 금지
- 민감한 정보가 포함된 환경변수는 평문으로 저장되므로 주의
✅ 예시 정리
컨테이너를 상호작용 모드로 실행:
docker run -it ubuntu /bin/bash
컨테이너 백그라운드 실행:
docker run -d --name web nginx
특정 이미지 목록 보기:
docker images
컨테이너 멈추기:
docker stop <container_id>