👀 목차
- 도커 다운로드
- 도커 설치 확인 (docker version)
- 컨테이너 실행하기 (docker run ~)
- docker 명령어
1. 도커 다운로드
- 맥 : 맥 다운로드 매뉴얼
- 윈도우: 윈도우 다운로드 매뉴얼
- 리눅스: 리눅 다운로드 매뉴얼
2. 도커 설치 확인 (docker version)
$ docker version
명령어 결과
server, client 가 존재하는 이유는 아래와 같은 역할을 각각 한다.
- client: 현재 나의 컴퓨터
- server: host 에서 실제로 실행하고 결과를 client에게 전달
T 아카데미 강의 자료 사진 첨부
$ docker version
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:22:34 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:29:19 2019
OS/Arch: linux/amd64
Experimental: true
3. 컨테이너 실행하기 (docker run ~)
3-1. docker run 의미
사용할 이미지가 저장되어 있는지 확인하고 없다면
다운로드(pull)
를 한 후컨테이너를 생성(create)
하고시작(start)
한다.
- 추가 run 명령어 설명
- 명령어
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
- run OPTIONS
옵션 | 설명 |
---|---|
-d | detached mode 흔히 말하는 백그라운드 모드 |
-p | 호스트와 컨테이너의 포트를 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
—name | 컨테이너 이름 설정 |
-it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 |
—rm | 프로세스 종료시 컨테이너 자동 제거 |
—link | 컨테이너 연결 [컨테이너 명:별칭] |
3-2. docker 사용 예시
- ubuntu:18.04 컨테이너 실행
ubuntu:18.04 컨테이너를 실행해 봅시다.
- 명령어
$ docker run ubuntu:18.04
- 실행 결과
Unable to find image 'ubuntu:18.04' locally
18.04: Pulling from library/ubuntu
5c939e3a4d10: Pull complete
c63719cdbe7a: Pull complete
19a861ea6baf: Pull complete
651c9d2d6c4f: Pull complete
Digest: sha256:8d31dad0c58f552e890d68bbfb735588b6b820a46e459672d96e585871acc110
Status: Downloaded newer image for ubuntu:18.04
- bin/bash으로 실행하기
컨테이너 내부로 들어가기 위해
/bin/bash
를 입력하여 bash쉘을 실행하고-it
를 넣어 키보드를 입력할 수 있게 한다.
$ docker run --rm -it ubuntu:18.04 /bin/bash
root@068eeb84a16b:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
- redis 컨테이너 실행 하기
컨테이너 이름은 redis로 하고
-d
옵션으로 백그라운드 실행,-p
옵션으로 호스트 1234 포트와 컨테이너 6379 포트 연결하여 내 pc 1234포트로 접속한다.
$ docker run --name=redis -d -p 1234:6379 redis
Unable to find image 'redis:latest' locally
latest: Pulling from library/redis
8ec398bc0356: Pull complete
da01136793fa: Pull complete
cf1486a2c0b8: Pull complete
a44f7da98d9e: Pull complete
c677fde73875: Pull complete
727f8da63ac2: Pull complete
- mysql 컨테이너 실행하기
아래의
-e
옵션 관련 환경 변수 옵션은"docker hub (이미지)"로 구글 검색
하면 도커 허브에 관련 설정이 정의되어 있으니 참고 필요하다.
- docker hub 설명: mysql 환경설정
$ docker run -d -p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
--name mysql \
mysql:5.7
-wordprocess 컨테이너 실행하기
docker run -d -p 8080:80 \
-e WORDPRESS_DB_HOST=docker.for.mac.localhost \ -e WORDPRESS_DB_NAME=wp \
-e WORDPRESS_DB_USER=wp \
-e WORDPRESS_DB_PASSWORD=wp \
wordpress
4. docker 명령어
자주 사용하는 명령어를 확인해 보자. 다른 명령어들은 아래 참고 바랍니다.
- 기본 명령어 참고 : docker 기본 명령어 정리
4-1. docker pull
이미지를 다운로드를 한다.
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]
4-2. docker ps
컨테이너 목록 확인 / 옵션 없이 사용하는 경우, 실행중인 컨테이너만 출력
$ docker ps [OPTIONS]
- OPTIONS
Name, shorthand | Description |
---|---|
–all , -a | 모든 컨테이너를 보여준다. (컨테이너가 실행중이지 않는 것이라도, stop된 컨테이너도 보여줌 ) |
4-3. docker rm
컨테이너를 제거한다.
$ docker rm [OPTIONS] CONTAINER [CONTAINER...]
- OPTIONS
Name, shorthand | Description |
---|---|
–force , -f | 실행중인 컨테이너를 강제로 제거한다. (uses SIGKILL) |
- 자주 사용하는 명령어
$ docker rm -f <컨테이너 명>
4-4. docker images
이미지 목록 확인하기
$ docker images [OPTIONS] [REPOSITORY[:TAG]]
4-5. docker rmi
이미지 제거하기
$ docker rmi [OPTIONS] IMAGE [IMAGE...]
- 자주 사용하는 명령어
$ docker rmi <제거할 이미지 1> <제거할 이미지2> ...
4-6. docker start
stop된 컨테이너를 실행시켜 준다.
$ docker start [OPTIONS] CONTAINER [CONTAINER...]
4-7.docker stop
실행 중인 컨테이너를 stop한다.
$ docker stop [OPTIONS] CONTAINER [CONTAINER...]
4-8.docker logs
도커 컨테이너의 로그 확인하기
$ docker logs [OPTIONS] CONTAINER
- OPTIONS
Name, shorthand | Description |
---|---|
–follow , -f | 실시간 로그 생성 |
–tail | 마지막 number 숫자 줄 만큼만 출력 |
- 자주 사용하는 명령어
$ docker logs -f <컨테이너 명>
4-9. docker exec
실행 중인 컨테이너에 들어갈 때 사용
$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
- 자주 사용하는 명령어
$ docker exec -it <컨테이너 명> /bin/bash