Docker란?
도커(Docker)는 컨테이너 기반 가상화 플랫폼으로, 응용 프로그램과 그 종속성을 격리된
환경인 컨테이너로 패키징하여 실행하는 기술이다.
컨테이너(Container)
가상화 기술을 이용하여 어플리케이션과 개발 환경을 격리된 공간에서 실행하는 단위
1단계 : 도커 GPG 키 및 레포지토리 등록 생성
Docker Home
Create apt Repository
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
2단계 : 도커 엔진 관련 패키지 설치
3단계 : 도커 엔진 구동 확인
4단계 : 도커 설치 후 작업
Manage Docker as a non-root user
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Docker 개념
도커(Docker)는 컨테이너를 실행하기 위한 실행 환경(컨테이너 런타임)및 툴 킷.
쿠버네티스는 도커 이외의 컨테이너 런타임도 지원하도록 개발되어 있다.
때문에 쿠버네티스를 사용할 경우 도커에 대한 학습이 반드시 필요한 것은 아니다.
주로 필요한 내용은 도커 이미지에 대한 지식들이 필요하다.
도커 이미지가 아닌 OCI 표준 컨테이너 이미지를 사용하는 방법이나 다른 도구에서 도커 이미지를
빌드하는 방법들도 존재한다.
하지만, 아직도 도커 이미지를 많이 사용하고 있고, 도커 이미지 작성 메뉴얼인 도커 파일을 사용해
이미지를 생성하는 경우가 많다.
때문에 도커 이미지를 제대로 만들어 도커 이미지 보관/배포 서버인 도커 레지스트리로 푸시(업로드)하는
방법을 알아두면 편리하게 작업할 수 있다.
알아볼 섹션은 다음과 같다.
1. 도커 컨테이너 설계
2. 도커 파일 작성법
3. 도커 이미지 빌드
4. 도커 레지스트리로 이미지 푸시
Docker Container 설계
도커 컨테이너란?
도커 이미지를 기반으로 실행되는 프로세스를 의미한다.
도커 이미지만 있다면 환경의 영향을 받지 않고 다양한 환경에서 컨테이너를 기동할 수
있기 때문에 '이식성'이 높다.
이렇게 빌드된 도커 이미지는 어느 환경에서도 동일한 동작을 보장받을 수 있다.
이식성
소프트웨어가 한 컴퓨터 시스템이나 환경에서 다른 시스템이나 환경으로 쉽게 옮겨질 수 있는 성질
도커 컨테이너의 특징을 정리하자면 다음과 같다.
이식성이 높고, 동일한 동작을 보장한다.
가볍고, 시작과 중지가 빠르다는 장점을 가지고 있다.
도커 컨테이너 생성 시 주의사항
컨테이너 당 1개의 프로세스(관리의 불편함과 에코 시스템 이슈)
변경 불가능한 인프라 이미지로 생성(외부 영향에 따른 변경이 일어나지 않게)
경량 도커 이미지로 생성(외부에서 쉽게 다운받아 사용할 수 있게)
dnf/yum, apt 패키지 설치 후에 저장소 패키지 목록 등의 캐시 파일 삭제
최대한 경량 배포판 이미지를 사용(alpine Linux, Deistorless 등)
도커 파일 최적화에 따른 레이어 줄이기, 도커 이미지 생성 시 시퀸스 사용
Docker Commands(도커 명령어)
Docker 공식사이트에 Docker Hub로 가면 필요한 이미지를 찾아서 사용할 수 있다.
이미지를 검색하는 명령어
STARS : 좋아요
OFFICIAL : 공식 이미지
docker search 사용법
사용법 : docker search [OPTION] TERM
Options :
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results
--no-trunc Don't truncate output
docker search alpine
docker search mysql
docker pull 사용법
- 사용법 : docker pull [OPTIONS] NAME[:TAG][DIGEST]
=> Digest는 이미지의 해시값을 의미함
=> 이미지를 검색해서 들어가면 나오는 OS/ARCH는 사용자의
OS를 가리키는게 아닌 해당 이미지의 OS를 의미함.
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
말 그대로 Docker 로그인 명령어이다.
해당 명령어 사용 시 ID, PW를 입력하면 터미널에서도 도커에 로그인 할 수 있다.
도커 이미지 삭제 명령어
이미지는 삭제 시 이미지를 식별하는 digest를 정확하게 입력한다.
(latest의 경우 이미지 이름만 적어도 삭제가 가능)
사용법
docker image rm [삭제할 이미지 이름] / docker rmi [삭제할 이미지 이름]
docker image rm
docker rmi
사용법
docker [container] run [OPTIONS] IMAGE [COMMAND] [ARG...]
$ docker run -it alpine:latest => -it 옵션은 터미널 옵션
** --rm 옵션을 사용하면 컨테이너 종료시 자동 삭제...
사용법
docker container stop
컨테이너를 정상 종료하는 명령어
docker container kill
컨테이너 강제 종료 명령어
도커 파일 작성법
*도커 파일로 이미지 만들기
Dockerfile을 이용하여 빌드하는 방법
Dockerfile 사용 가능 명령들
ex) LABEL maintainer="hidro cho<hidro1234@naver.com>"
Docker git 설치하기
Docker Build
Dockerfile 만들기
1. ubuntu 이미지에 git이 설치된 ubuntu-git 이미지를 만드는 Dockerfile 생성
1-1. mkdir Dockerfile1
1-2. Dockerfile1 디렉터리 안에 Dockerfile 생성
FROM ubuntu
RUN apt-get update
RUN apt-get install -y git
1-3. docker images를 사용하여 생성된 이미지 확인
1-4. docker ps -a | grep ubuntu-git
확인 후 컨테이너 아이디로 삭제하기
docker container rm [컨테이너 ID]
=> 만약 컨테이너가 실행 중이라면 docker container stop [컨테이너 ID] 명령을 먼저 실행
후 삭제해야 한다.
docker ps로 컨테이너가 삭제됐는지 확인
도커 컨테이너 기동에 대한 기본 명령어
각각의 컨테이너는 독립적으로 작동한다.
이미지의 구성이 같더라도 서로에게 영향을 미치지 않는다.