Docker
[Docker] Docker 요약 (2)
ozofweird
2020. 12. 8. 01:39
1. Docker 명령어
1) 이미지 조작
명령어 | 설명 |
docker images | 이미지 목록 |
docker search [이미지명] | 이미지 검색 |
docker pull [이미지명:버전] | 이미지 받기 |
docker rmi [이미지 ID] | 이미지 삭제 |
2) 컨테이너 조작
명령어 | 설명 |
docker container ls | 컨테이너 목록 |
docker container ps | 컨테이너 상태 확인 |
docker container stats [컨테이너 ID 혹은 name] | 컨테이너 상태 확인 |
docker container run [옵션] [이미지:태그 혹은 @Digest] [명령] [ARG ...] | 컨테이너 실행 |
docker container start [컨테이너 ID 혹은 name] | 컨테이너 시작 |
docker container restart [컨테이너 ID 혹은 name] | 컨테이너 재시작 |
docker container attach [컨테이너 ID 혹은 name] | 컨테이너 접속 |
docker container stop [컨테이너 ID 혹은 name] |
컨테이너 정지 |
docker container rm [컨테이너 ID 혹은 name] | 컨테이너 삭제 |
"컨테이너 실행 옵션"
// 달력 확인
docker container run -it --name "test" centos /bin/cal
// localhost에 ping 명령을 백그라운드로 실행
docker container run -d centos /bin/ping localhost
옵션 | 설명 |
-d | 백그라운드로 실행 |
-p | 호스트와 컨테이너의 포트 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
--name | 컨테이너 이름 설정 |
--it | 터미널 입력을 위한 옵션 (컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결) |
--rm | 프로세스 종료 시 컨테이너 자동 제거 |
--link | 컨테이너 연결 [컨테이너명:별칭] |
※ 그 외에도 'docker container run' 명령어 네트워크 구성, 자원 및 환경을 지정하여 컨테이너를 생성하거나 실행할 수 있다.
3) 네트워크 조작
명령어 | 설명 |
docker network ls | 네트워크 목록 |
docker network inspect [옵션] [네트워크] | 네트워크 정보 확인 |
docker network create [옵션] [네트워크] | 새로운 네트워크 작성 |
docker network connect [옵션] [네트워크 컨테이너] | 네트워크 연결 |
docker network disconnect [옵션] [네트워크 컨테이너] | 네트워크 해제 |
docker network rm [옵션] [네트워크] | 네트워크 삭제 |
"새로운 네트워크 작성 옵션"
옵션 | 설명 |
--driver, -d | 네트워크 bridge 또는 overlay를 작성 |
--ip-range | 컨테이너에 할당하는 IP 주소의 범위 지정 |
--subnet | 서브넷을 CIDR 형식으로 지정 |
--ipv6 | IPv6 네트워크 유효 여부 |
--label | 네트워크 라벨 설정 |
"네트워크 연결 및 해제 옵션"
옵션 | 설명 |
--ip | IPv4 주소 |
--ip6 | IPv6 주소 |
--alias | 별칭 |
--link | 다른 컨테이너에 대한 링크 |
4) sudo 없이 Docker 명령어 사용
명령어 | 설명 |
sudo usermod -aG docker $USER | 현재 접속 중인 사용자에게 권한 허용 |
2. Dockerfile
1) 주요 명령
명령 | 설명 |
FROM | 베이스 이미지를 지정 |
RUN | 명령 실행 |
CMD | 컨테이너 실행 명령 |
LABEL | 라벨 설정 |
EXPOSE | 포트 설정 |
ENV | 환경 변수 설정 |
ADD | 디렉토리 및 파일 추가 |
COPY | 파일 복사 |
ENTRYPOINT | 컨테이너 실행 명령 |
VOLUME | 볼륨 마운트 |
USER | 사용자 지정 |
WORKDIR | 작업 디렉토리 |
ARG | Dockerfile 파일 내의 변수 |
ONBUILD | 빌드 완료 후 실행되는 명령 |
STOPSIGNAL | 시스템 콜 시그널 설정 |
HEALTHCHECK | 컨테이너 헬스 체크 |
SHELL | 기본 쉘 설정 |
# | 주석 |
2) Dockerfile 빌드 (이미지 생성)
명령어 | 설명 |
docker build -t [생성할 이미지:태그명] [옵션] [Dockerfile 위치] | Dockerfile이 아닌 다른 파일명으로 이미지를 생성할 경우 '-f' 옵션으로 지정할 수 있다. 하지만 Dockerfile 이외의 이름은 Docker Hub에서 이미지의 자동 생성 기능을 사용할 수 없다. |
# STEP:1 Ubuntu (베이스 이미지)
FROM ubuntu:latest
# STEP:2 Nginx 설치
RUN apt-get update && apt-get install -y -q nginx
# STEP:3 파일 복사
COPY index.html /usr/share/nginx/html/
# STEP:4 Nginx 시작
CMD ["nginx", "-g", "daemon off;"]
// 현재 위치에 Dockerfile이 있을 경우
docker build -t test:0.0 .
3. Docker Compose
명령 | 설명 |
docker-compose up [옵션] [서비스명] . | 컨테이너 생성/시작 |
docker-compose ps | 컨테이너 목록 |
docker-compose ls |
컨테이너 목록 |
docker-compose logs | 컨테이너 로그 |
docker-compose run [컨테이너 ID] /bin/bash | 컨테이너 명령 실행 |
docker-compose start | 컨테이너 시작 |
docker-compose restart | 컨테이너 재시작 |
docker-compose stop | 컨테이너 정지 |
docker-compose pause | 컨테이너 일지 정지 |
docker-compose unpause | 컨테이너 재개 |
docker-compose port [옵션] [서비스명] [프라이빗 포트 번호] | 공개 포트 번호 |
docker-compose config | 구성 확인 |
docker-compose kill | 실행 중인 컨테이너 강제 정지 |
docker-compose rm | 컨테이너 삭제 |
docker-compose down | 리소스 삭제 |
728x90