2019. 12. 24. 11:08ㆍ🔴 ETC/Docker
1. Docker for Mac 설치하기
https://docs.docker.com/docker-for-mac/install/
Install Docker Desktop on Mac
To download Docker Desktop, go to Docker Hub and sign in with your Docker ID. Download from Docker Hub By downloading Docker Desktop, you agree to the terms of the...
docs.docker.com
2. 도커 설치 확인
$ 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: false
containerd:
Version: v1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
이렇게 client, server 두개의 정보가 출력되면 된다!
도커는 하나의 실행파일이지만 실제로는 클라이언트 서버역할을 각각 할 수 있다.
도커 커맨드 명력어 입력 -> 도커 클라이언트가 받음 -> 도커 서버로 명령 전송 -> 결과 받아서 터미널 출력
3. mysql 이미지 pull하기
$ docker pull mysql:5.6
mysql 5.6버전이 필요했기에 해당 버전을 pull해서 mysql image를 받았다.
$ docker image ls
도커에 다운받은 이미지들 list를 보면 mysql이 잘 받아진 것을 확인 할 수 있다.
4. 컨테이너 실행하기
도커 실행 명령어:
docker run [options] 이미지이름[:태그][명령어][전달인자]
$ docker run mysql:5.6
run 명령어를 사용하면 해당 이미지가 저장되어있는지 확인하고 없으면
pull한다음 컨테이너를 create한 뒤 start한다.
모든 컨테이너 목록 확인하기
$ docker ps -a
mysql 터미널 사용해보기
$ docker -it mysql:5.6 /bin/bash
- it | - i + - t , 터미널 입력을 위한 옵션 |
5. 포워딩 & 마운트하기
= 내 로컬 pc와 컨테이너가 같은 곳을 바라보게 만드는 것
포트 포워딩 : 컨테이너 외부와 내부를 연결
마운트 : 호스트와 컨테이너의 디렉토리를 연결
이렇게 내 로컬 pc의 디렉토리와 컨테이너 내부의 디렉토리를 연결하면
혹여나 컨테이너를 삭제하더라도
mysql로 작업했던 데이터는 삭제되지 않고 내 로컬에 남아있게 된다.
또한 포트를 연결하면
도커 컨테이너의 포트번호를 모두 다 쓸 필요없이
정해준 포트번호로 사용하면 된다.
$ docker run -d --name=test-mysql -e MYSQL_ROOT_PASSWORD=’비밀번호입력’ -p 3306:3306 -v /storage/test-mysql/datadir:/var/lib/mysql mysql:5.6
- d | detached mode, 백그라운드 모드 |
-- name | 컨테이너 이름 설정 |
- e | 컨테이너에서 사용할 환경변수 설정 |
- p | 내부 포트 : 외부 포트, 포트 포워딩 |
- v | 내부 dir : 외부 dir, 디렉토리 마운트 |
** 마운트를 하기 전에!!!
docker: Error response from daemon: Mounts denied:
The path /storage/test-mysql/datadir
is not shared from OS X and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.
이런 에러를 피하기 위해서는 Docker > Preferences > file sharing에 디렉토리를 추가해줘야 한다.
실행중인 'test-mysql' 컨테이너에서 터미널 사용하기
$ docker exec -it test-mysql /bin/bash
- exec | 실행 중인 컨테이너에서 명령어 실행 |
이렇게 한 다음, 'mysql -uroot -p' 명령어로 mysql를 실행해서 사용하면 된다.
'test-mysql' 컨테이너 삭제하기
$ docker rm -f test-mysql
rm | 삭제 |
- f | 강제로 |
그 외 자주 쓰는 명령어
docker start [options] 컨테이너 | 멈춰있는 컨테이너 실행 |
docker stop [options] 컨테이너 | 실행된 컨테이너 멈춤 |
docker restart [options] 컨테이너 | 실행된 컨테이너 다시 실행 |
docker stats [options] 컨테이너 | 컨테이너 상태 조회 |
참고:
https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html
https://sung-studynote.tistory.com/66
https://www.slideshare.net/pyrasis/docker-fordummies-44424016
'🔴 ETC > Docker' 카테고리의 다른 글
docker vs virtual machine (0) | 2019.12.24 |
---|---|
docker container lifecycle (0) | 2019.12.24 |
docker란? (1) | 2019.12.24 |