이미지
도커 컨테이너 전 단계로, 컨테이너를 생성하고, 실행하기 위한 모든 것을 포함
ex) 생성에 필요한 파일, 환경변수, 명령어, 파일 시스템
자신의 이미지를 만들거나 다른 사람이 만든 이미지를 사용할 수도 있음
이미지를 생성하기 위해서는 Dockerfile을 작성하고 빌드해야 함
Dockerfile
이미지를 생성하는 데 단계적으로 필요한 명령을 작성하는 파일
도커 레지스트리
도커 이미지를 저장하는 저장소
도커의 공식 레지스트리 : Docker Hub
컨테이너
가상의 환경이 구축되어 있는 하나의 박스
운영체제 환경을 구축할 필요 없이 하나의 분리된 프로세스처럼 작동
도커 이미지로부터 만들어진 실행 가능한 인스턴스, 실행 중인 이미지
도커 이미지와 사용자가 컨테이너를 시작할 때 작성하는 옵션에 의해 정의됨
명령어
docker build
Dockerfile을 이용하여 이미지 생성
docker build [옵션] [Dockerfile 경로]
docker build -t [이미지명:태그] [Dockerfile 경로]
-t 옵션으로 이미지의 이름과 태그를 지정할 수 있음, 태그를 작성하지 않을 경우 latest로 지정됨
-f 옵션으로 원하는 이름의 도커 파일 사용 가능
docker images
도커 이미지 목록 출력
docker run
도커 이미지로 컨테이너 생성, 실행
docker run [옵션] [이미지명|ID] [명령어]
docker run -p [호스트 port]:[컨테이너 port] [이미지명|ID]
docker run -it [이미지명|ID] [명령어]
-p 옵션은 도커 컨테이너의 포트와 호스트의 포트 매핑
-it 옵션으로 컨테이너에서 bash 셸 사용 가능
-i (--interactive) : 표준 입력 활성화하여 사용자가 입력할 수 있도록 함
-t (--tty) : 가상 터미널(tty)을 사용할 수 있도록 함
docker ps
실행중인 컨테이너 목록 출력
-a 옵션 : 종료된 컨테이너까지 모두 출력
docker create
도커 이미지로 컨테이너 생성
docker create [옵션] [이미지명|ID] [명령어]
docker start
중단된 컨테이너 시작
docker start [옵션] [컨테이너명|ID]
docker exec
실행 중인 컨테이너에 접속하여 명령 수행
docker exec [옵션] [컨테이너명|ID] [명령어]
docker stop
실행 중인 컨테이너 중단
docker stop [옵션] [컨테이너명|ID]
docker pull
레지스트리에 존재하는 도커 이미지 다운
docker pull [옵션] [이미지명]
docker rm
도커 컨테이너 삭제
docker rm [옵션] [컨테이너명|ID]
docker rmi
도커 이미지 삭제
docker rmi [옵션] [이미지명|ID]
docker inspect
도커 이미지 혹은 컨테이너의 자세한 정보 출력
docker inspect [옵션] [이미지 혹은 컨테이너명|ID]
Dockerfile
FROM
생성할 이미지의 기반이 되는 base 이미지 저장
보통 사용할 운영체제의 공식이미지
ENV
환경변수 지정
ENV 변수명 값 or ENV 변수명=값
RUN
이미지 빌드할 때 실행할 명령어 작성
필요한 패키지 설치, 파일 권한 설정 등 작업 수행
RUN 명령어 or RUN ["명령어", "인자1", "인자2"]
COPY
src 파일이나 디렉터리를 이미지 파일 시스템의 dst로 복사
COPY src dst
ADD
src 파일이나 디렉터리, URL을 이미지 파일 시스템의 dst로 복사
ADD src dst
WORKDIR
Dockerfile 내 명령을 수행할 작업 디렉터리 지정
WORK 디렉터리
USER
명령을 수행할 사용자 혹은 그룹 지정
USER [사용자명|UID] or USER [사용자명|UID]:[그룹명|GID]
EXPOSE
컨테이너가 실행 중일 때 들어오는 네트워크 트래픽을 리슨할 포트와 프로토콜 지정
EXPOSE 포트
ENTRYPOINT
컨테이너가 실행될 때 수행할 명령어 지정
docker run의 인자가 있으면, ENTRYPOINT의 인자로 들어감
CMD
컨테이너가 실행될 때 수행할 명령어 지정하거나, ENTRYPOINT 명령어에 인자 전달
docker run의 인자가 있으면, cmd 명령어는 무시됨
Docker Hub
이미지 업로드
1. docker login
2. docker build -t [이미지명:태그]
3. docker push [사용자]/[이미지명:태그]
이미지 다운로드
docker pull [사용자]/[이미지명:태그]
'mac' 카테고리의 다른 글
구글 티스토리 검색 노출 (0) | 2023.02.07 |
---|---|
다음 티스토리 검색 누락 확인 (0) | 2023.02.07 |
terminal custom (0) | 2023.02.05 |
shell (0) | 2023.01.17 |
Homebrew 다운로드 (0) | 2023.01.17 |