-
[Docker] Docker 개념과 실행해보기IT/개발 관련(DB, Git, Docker, Blockchain 등) 2019. 9. 2. 13:34
오늘은 도커에 대해서 정리를 해보겠다!
백문이 불여일견이라고, 빨리 실행해보고 싶어서 최소한의 개념만 잡고 바로 실행부터 해보았다.
1. 도커 개념
도커는 리눅스의 컨테이너 기술이다. 위의 이미지는 도커의 상표인데, 고래 등에 층층이 올라가 있는 것이 컨테이너!
우리가 평소에 알고있는 그 컨테이너와 같은 역할을 한다. 다만 차이가 있다면 각각의 컨테이너에는 하나의 소프트웨어 단위가 들어가서 실행된다. 예를들면, mysql이 실행되고 있는 컨테이너나 ubuntu 18.04가 실행되고 있는 컨테이너 등등.
docker hub은 도커의 원격 저장소 개념이다.
나의 로컬에 mysql이 실행중인 컨테이너를 만들고싶다면, 도커헙에서 mysql 이미지를 다운로드해서 실행을 해야 한다.
혹은 내가 만든 이미지를 docker hub에 공유할 수도 있다.
도커를 사용하려면, 맥과 윈도우에서는 docker desktop을 설치하면 된다.
커맨드라인(CLI)에서는 물론이고,
docker desktop의 kitematic을 이용하면 위와 같이 GUI 환경에서도 이미지를 다운로드할 수 있다.
2. 도커 설치
맥을 사용하고 있기 때문에 이곳에서(https://docs.docker.com/docker-for-mac/install/) Docker Desktop을 설치했다.
설치가 완료 됐으니, 이제 터미널에서 docker version을 쳐보면 아래와 같이 나온다.
$ docker version
docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:18:17 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
3. 도커로 포스트그레스 설치하고 실행해보기
도커 동작 확인
$ docker ps
도커로 포스트그레스 설치
$ docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=kesun -e POSTGRES_DB=springdata --name postgres_boot -d postgres
-p 포트 매핑.
포스트그레스 컨테이너가 5432 포트로 포스트그레스 서비스 노출. 나의 localhost의 5432로 매핑. 애플리케이션이 5432에 접속하면 포스트그레스에 접속.
-e 환경변수.
포스트그레스 패스워드, 유저, 디비이름.
--name 컨테이너 이름. -d 데몬 모드로 띄운다. 백그라운드로 띄운다. postgres 이미지의 이름.
포스트그레스 실행하기$ docker exec -i -t postgres_boot bash
exec 명령어 실행 -i 인터랙티브 모드 -t 어느 컨테이너에 이 명령어를 실행할지 bash 실행할 명령어 위의 명령어를 입력하면 포스트그레스 컨테이너 안으로 들어간다.
아래는 포스트그레스에 정상적으로 접속 됐을 때 사용하는 포스트그레스 명령어이다.
su - postgres : postgres user로 변경하는 명령
psql springdata : vpsql 사용해서 접속할 디비 이름 준다.
\list : 디비 리스트 확인
\dt : 테이블 목록 확인
'IT > 개발 관련(DB, Git, Docker, Blockchain 등)' 카테고리의 다른 글
[MySQL] INNER JOIN / LEFT JOIN / RIGHT JOIN (초간단 예제) (0) 2020.04.07 [MySQL] ERROR 1006 (HY000): Can't create database (errno: 2 "No such file or directory") (0) 2019.12.13 [Blockchain] 화폐의 종류와 개념 그리고 암호화폐의 등장 (0) 2019.11.17 [MongoDB] 기초 개념 정리 (0) 2019.11.11 [Git] error: failed to push some refs to ... / fatal: refusing to merge unrelated histories 에러가 났을 때 해결방법 (0) 2019.09.01