Docker 입문 #2 【Docker 튜토리얼】

Docker 입문 #2 【Docker 튜토리얼】

2022-10-05 last update

6 minutes reading 인프라 도커 입문

이 기사에 대하여



공식 사이트의 Getting Started with Docker for Mac 의 내용입니다

Windows 버전은 다음
Getting Started with Docker for Windows

우선 설치하고 웹 서버 세워 보자! 의도하에 쓰고 있습니다.

설치



(이미 homebrew 또는 Docker Toolbox에서 설치한 경우 제거하십시오)

Mac
htps //w w. 도 c r. 코 m / p 로즈 cts / 도 c 케 # # 마 c

Windows
htps //w w. 도 c r. 코 m / p 로즈 cts / 도 c 케 r # / 우동 ws

설치가 환경이 되면 마스코트의 Moby-Dick(흰 고래군)이 미소를 줍니다


Docker 구성 요소



Docker는 핵심 기능을 제공하는 "Docker Engine"을 중심으로 "이미지 작성 → 공개 → 컨테이너 실행"을 수행하는 구성 요소 (부품)가 제공됩니다
주요 구성 요소는 다음과 같습니다.

Docker Engine(Docker 핵심 기능)
Docker 이미지를 생성하고 컨테이너를 시작하는 등의 핵심 기능
Docker 명령을 실행하거나 DockerFile로 이미지를 생성합니다.

Docker Machine(Docker 실행 환경 구축)
하이퍼바이저나 VirtualBox, AWS나 AZURE 등의 클라우드 환경 등에 Docker의 실행 환경을 명령으로 자동 생성하는 툴

Docker Compose(여러 컨테이너의 중앙 관리)
복수 컨테이너의 구성 정보를 코드로 정의해, 커멘드를 실행하는 것으로 어플리케이션의 실행 환경을 구성하는 컨테이너군을 일원 관리하기 위한 툴

Docker Registry(이미지 공개·공유)
컨테이너의 원본이되는 이미지를 공개 및 공유하기위한 레지스트리 기능
Docker 공식 레지스트리 서비스인 Docker Hub도 이 기능을 사용합니다.

Docker Hub (Docker 공식 레지스트리)
CentOS · nginx와 같은 공식 이미지는이 레지스트리에서 가져옵니다.
public이므로 많은 유저에 의한 자작의 이미지가 공개되고 있다
이미지를 private로 하고 싶은 경우는 사내 서버에 Docker Registry를 세워, push하는 흐름이 된다

Docker 정보



컨테이너 이미지 수, 사용자 정보 등 현재 정보 표시
$ docker info

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
...

각 도구의 버전 확인



Docker 본체


$ docker --version

Docker version 1.12.0, build 8eab29e

Docker Compose(여러 컨테이너의 중앙 관리)



복수 컨테이너의 구성 정보를 코드로 정의해, 커멘드를 실행하는 것으로 어플리케이션의 실행 환경을 구성하는 컨테이너군을 일원 관리하기 위한 툴
$ docker-compose --version

docker-compose version 1.8.0, build f3628c7

Docker Machine(Docker 실행 환경 구축)



VirtualBox를 비롯해 AWS나 AZURE 등의 클라우드 환경 등에 Docker의 실행 환경을 명령으로 자동 생성하는 툴
$ docker-machine --version

docker-machine version 0.8.0, build b85aac1

웹서버 구축



"webserver"라는 이름으로 컨테이너를 세우고, nginx의 이미지를 공식에서 pull하고 있습니다
# 8080番にしてます
$ docker run -d -p 8080:80 --name webserver nginx

Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
357ea8c3d80b: Pull complete
:

http://localhost:8080
위에 액세스할 수 있습니다.
Unable to find image 'nginx:latest' locally최초의 기동은 로컬에 이미지가 없고, 공식으로부터 pull 하고 있기 때문에 기동에 5초 정도 걸립니다만
2번째부터는 로컬로 저장한 이미지를 사용하기 때문에, 고속의 기동이 가능하게 됩니다

컨테이너 목록


$ docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES
c5e7400c19c9        nginx               "nginx -g 'daemon off"   1 minutes ago       Up 1 minutes        443/tcp, 0.0.0.0:8080->80/tcp   webserver

컨테이너 종료



지정된 docker 컨테이너 종료
# CONTAINER IDでkill
$ docker kill c5e7400c19c9
or
# NAMESでkill
$ docker kill webserver

컨테이너 삭제



지정된 docker 컨테이너 삭제
$ docker rm c5e7400c19c9
or
$ docker rm webserver

튜토리얼 종료입니다!
수고하셨습니다.

링크



Docker 입문 #1 【Docker란】
Docker 입문 #2 【Docker 튜토리얼】
Docker 입문 #3 【WordPress 환경 구축】
Docker 입문 #4 【CodeIgniter 환경 구축】
Docker 입문 #5 【Ruby on Rails5 환경 구축】
Docker 명령 치트 시트