본문 바로가기

KOSA 클라우드 솔루션즈 아키텍트 양성과정

[7.11] Docker(컨테이너, 이미지 삭제, 파일 이해)

도커 이미지 : CentOS와 같이 도커 컨테이너를 구성하는 파일 시스템과 엔진엑스와 같이 실행할 애플리케이션 설정을 하나로 합친 것, 컨테이너 생성을 위한 템플릿 역할

 

 

도커 컨테이너 : 도커 이미지를 기반으로 생성되며, 파일 시스템과 애플리케이션이 활성화되어 실행(접속)되는 상태


# 도커 허브에서 이미지 검색 : docker search [옵션] 이미지 키워드

 

*옵션*

--no-trunc : 결과를 모두 표시
--limit : 최대 검색 결과 수
--filter=stars=n : 별표가 n개 이상인 것만 표시

 

# 이미지 목록 보기 : docker image ls [옵션][리포지토리명]

 

*옵션*

--no-trunc : 결과를 모두 표시
--quiet, -q : 이미지 ID만 표시

 

# 하나 이상의 이미지에 대한 자세한 정보 표시 : docker image inspect [옵션]이미지[이미지...]

 

*옵션*

--format, -f : 원하는 정보마 출력

 

# 컨테이너 생성 및 시작 : docker container run [옵션] 이미지 [:태그][인수]

 

*옵션*

--detach, -d : 백그라운드에서 실행
--interactive, -i : 표준 입력을 엶
--tty, -y : 티미널 사용

# 도커 컨테이너 리스트 조회

docker container ls = docker ps(process list)

=> 실무에서는 docker ps를 사용

 

# 도커 컨테이너 삭제

docker rm -f [컨테이너의 이름이나 ID]

 

# 도커 컨테이너 한 번에 삭제

docker rm -f $(docker ps -a -q)

# 도커 이미지 삭제

docker image rmi(=remove image)

 

# 도커 이미지 전체 삭제

docker rmi $(docker images -q)

# 실행 중인 컨테이너를 도커 이미지로 만들기

docker commit -a "skk2022<test@example.com>" -m "FOOD" webserver test_commit:v1.0


# 도커 파일

 

- 컨테이너를 생성하는 여러 구성 정보를 하나의 파일로 정리하고 일괄 실행

- docker image build 명령을 통해 도커이미지를 작성하는 스크립트

 


--- 도커 파일 이해

 

# vi Dockerfile
FROM ubuntu:18.04
=> 베이스 이미지를 명시
MAINTAINER johnlee
=> 관리자, commit할 때의 author와 유사
LABEL "name"="webserver"
ENV aloha=date
=> 환경 변수의 설정
=> aloha라는 변수에 date를 넣어줌
ENV path=/var/www/html
=> path라는 이름의 변수로 경로를 정의해줌
RUN sed -i 's/archive.ubuntu.com/ftp.daumkakao.com/g' /etc/apt/sources.list
=> /etc/apt/sources.list에서 ubuntu.com을 찾아서 daumkakao.com으로 바꿔줘(치환 명령어)
=> 's/~~/@@/g' /etc/apt/sources.list : s와 g 사이에 있는 ~~를 찾아서 @@로 치환, ~~는 sources.list에서 찾아서
RUN apt-get update
RUN apt-get install apache2 -y
COPY nihao /var/www/html/nihao
=> nihao 폴더를 해당 경로에 복사
COPY hello.html $path
ADD aws.tar /var/www/html
=> COPY와 다르게 아카이브 파일을 풀어서 복사
WORKDIR /var/www/html
RUN echo ohayo >> ohayo.html
VOLUME /var/www/html
EXPOSE 80
ENTRYPOINT ["apachectl"]
CMD ["-D", "FOREGROUND"]