티스토리 뷰
도커
실행과 이미지 만들기
도커 이미지
컨테이너를 실행하기 위해 필요한 요소.
이미지의 이름 형태: __ __[저장소 이름]/[이미지 이름]:[태그]
[저장소 이름]: __ __이미지가 저장된 장소 (명시하지 않으면 도커 허브 공식 이미지)
[이미지 이름]: __ __이미지가 어떤 이미지인지 나타내는 이름
[태그]: __ __이미지의 버전관리. (생략시 도커 엔진이 자동으로 latest 로 인식)
(도커 허브의 저장소 이름: docker.io/library)
도커 허브로부터 이미지 검색과 가져오기
검색창에 ubuntu를 입력해보자
이런식으로 도커허브에서 원하는 이미지들을 검색할 수 있다.
docker의 search 명령어로도 검색이 가능
도커 이미지 받기
docker pull [이미지 이름]:[태그]
[태그] 생략 시 자동으로 latest 버전을 가져옴
이미지 목록 보기
“ docker images ” 라는 명령어로 현재 받아진 이미지들의 목록을 볼 수 있다.
이미지 삭제하기
“ docker rmi [이미지 id] ” 라는 명령어로 이미지 삭제가 가능하다.
(이 때, -f 옵션을 붙이면 해당 이미지를 사용하는 컨테이너도 강제로 삭제가 가능하다, 해당 옵션을 붙이지 않으면 해당 이미지를 사용중인 컨테이너가 현재 존재한다면 이미지의 삭제가 불가능하다)
이미지 실행하기 (컨테이너 생성 및 시작)
“ docker run [options] image[:[TAG] [COMMAND] [ARG…] ”
옵션 | 설명 |
---|---|
-d | detached mode 흔히 말하는 백그라운드 모드 |
-p | 호스트와 컨테이너의 포트를 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
--name | 컨테이너 이름 설정 |
-it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 (컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결) |
--rm | 프로세스 종료시 컨테이너 자동 제거 |
--link | 컨테이너 연결 [컨테이너 명:별칭] |
컨테이너 정지는 -it 명령어를 이용하여 쉘에 연결 된 경우에는 exit 를 입력하거나 Ctrl + D 입력 시 정지.
또는 Ctrl + P, Ctrl + Q 를 차례로 입력하면 정지하지 않고 컨테이너에서 빠져나옴.
컨테이너 목록 보기
docker ps [-a]
-a 옵션 사용 시 실행중이 아닌 모든 컨테이너도 출력
컨테이너 명령어들
“ docker start [컨테이너 id 또는 name] ” 중지되어 있는 컨테이너를 다시 실행할 수 있다.
“ docker stop [컨테이너 id 또는 name] ” 실행되어 있는 컨테이너를 종료할 수 있다.
“ docker restart [컨테이너 id 또는 name] ” 실행되어 있는 컨테이너를 다시 시작할 수 있다.
“ docker rm [컨테이너 id 또는 name] ” 컨테이너의 삭제가 가능하다.
“ docker attach [컨테이너 id 또는 name] ” 시작되어 있는 컨테이너에 연결 (터미널 상에서 입출력 주고받기)
도커 이미지 만들기
docker commit [options] [ 컨테이너 id 또는 name] [이미지 이름:TAG]
많이 사용하는 옵션
[-a]: 작성자 (예: “kim hwan <akon47@naver.com>”)
[-m]: 커밋 메시지 (주석)
컨테이너의 변경 사항을 이미지 파일로 생성하는 명령어
아까 만들어본 study 이미지 실행 후 nginx 설치해보기.
apt-get update
apt-get install -y nginx
위 두 가지 명령어를 실행하여 nginx 설치 후 아래 그림과 같이 docker diff 명령어를 이용하면 부모 이미지와 여기서 파생된 컨테이너간의 파일 시스템 간의 변경사항을 확인할 수 있다.
commit 명령어를 이용하여 컨테이너를 이미지화 시킬 수 있다.
docker images 명령어를 이용하여 만들어진 이미지 확인해보기
만들어진 이미지를 바탕으로 새로운 컨테이너 실행하기.
-p 명령어를 이용하여 도커의 80번 포트를 호스트의 8888번 포트로 포워딩한다.
Dockerfile을 이용한 도커 이미지 만들기
주요 명령: FROM, RUN, ENV, COPY, ENTRYPOINT
FROM: 이미지를 생성할 때 사용할 베이스 이미지
RUN: 이미지를 생성할 때 실행할 코드
WORKDIR: 작업 디렉토리 지정. (이 명령 지정 후 그 이후 명령어는 해당 디렉토리를 기준으로 작동(
COPY: 파일이나 폴더를 이미지에 복사. (호스트 -> 이미지)
ENV: 이미지에서 사용할 환경 변수 값 지정
ENTRYPOINT: 컨테이너를 구동할 때 실행할 명령어 지정
주요 명령: FROM, RUN, ENV, COPY, ENTRYPOINT
FROM: 이미지를 생성할 때 사용할 베이스 이미지
RUN: 이미지를 생성할 때 실행할 코드
WORKDIR: 작업 디렉토리 지정. (이 명령 지정 후 그 이후 명령어는 해당 디렉토리를 기준으로 작동(
COPY: 파일이나 폴더를 이미지에 복사. (호스트 -> 이미지)
ENV: 이미지에서 사용할 환경 변수 값 지정
CMD: 컨테이너를 구동할 때 실행할 명령어 지정 (도커 빌드시에는 실행되지 않고, 여러개의 CMD 가 존재할 경우 가장 마지막 명령어만 실행)
EXPOSE: 공개 하고자 하는 포트를 지정
docker build --tag study:0.1 . 명령어를 이용하여 Dockerfile 빌드.
다음 순서로 진행이 됨.
Step 1/6 : FROM ubuntu:18.04
Step 2/6 : RUN apt-get update
Step 3/6 : RUN apt-get install -y nginx
Step 4/6 : WORKDIR /etc/nginx
Step 5/6 : CMD ["nginx", "-g", "daemon off;"]
Step 6/6 : EXPOSE 80
만들어진 이미지를 명령어로 확인
만들어진 이미지를 실행해보기
- Total
- Today
- Yesterday
- Programming - C
- Programing
- 인코더
- ffmpeg
- 녹화
- Operation System
- Programming - C / C++
- 데몬
- PSP
- 가상드라이브
- WL-54G
- V3
- 백신
- 스터디_발표자료
- WPF
- 구글
- GAME
- 소니
- TCP/IP
- 하이퍼큐브
- c#
- API 프로그래밍
- KAI
- 프로그래밍
- 유마일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |