도커란 간단하게 말해 서버환경에서의 다양한 프로그램, 실행환경을 컨테이너라는 격리된 환경에서 실행할 수 있게 해주는 컨테이너 기반의 오픈소스 가상화 플랫폼 입니다.
이를 이용하면 복잡한 서버환경을 코드로 쉽게 관리할 수 있고 안정적인 배포환경 (무중단 배포 등) 구성할 수 있습니다.
그래서 이번 글에서는 도커에서 이미지를 받고 컨테이너를 생성하고 삭제 할 때, 자주쓰는 기본 명령어를 알아보려 합니다 :)
docker 설치
리눅스 자동 설치 스크립트
$ sudo wget -qO- https://get.docker.com/ | sh
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sh get-docker.sh
우분투
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
윈도우, 맥
Docker for windows, Docker for Mac 설치
📜 이미지 관련
도커에서는 도커 이미지를 이용하여 컨테이너를 생성할 수 있는데,
도커 이미지를 이용하면 이미지에 설정해둔 대로 컨테이너의 구성환경을 적용할 수 있습니다.
$ sudo docker images
$ sudo docker search [이미지 이름]
$ sudo docker pull [이미지 이름]:[버전]
버전: latest 를 쓰면 최신 버전으로 받을수 있다.
$ sudo docker rmi [이미지 id]
컨테이너를 삭제하기 전에 이미지를 삭제 할때, -f 옵션을 붙어면 컨테이너도 강제 삭제가 가능하다.
$ sudo docker rmi -f [이미지 id]
다양한 프로그램(nginx, database, WAS 등)을 컨테이너 라는 격리된 환경을 이용하여 실행시킬수 있습니다.
컨테이너 목록 보기
$ sudo docker ps
옵션
-a : 모든 컨테이너 목록 출력
컨테이너 실행
$ sudo docker run [options] image[:TAG|@DIGEST][COMMAND] [ARG...]
-d detached mode 흔히 말하는 백그라운드 모드
-p 호스트와 컨테이너의 포트를 연결 (포워딩)
-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e 컨테이너 내에서 사용할 환경변수 설정
--name 컨테이너 이름 설정
--it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 (컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결)
--rm 프로세스 종료시 컨테이너 자동 제거
--link 컨테이너 연결 [컨테이너 명:별칭]
ex) $ sudo docker run -i -t --name server ubuntu:latest /bin/bash
$ sudo docker start [컨테이너 id 또는 name]
$ sudo docker restart [컨테이너 id 또는 name]
$ sudo docker attach [컨테이너 id 또는 name]
$ sudo docker stop [컨테이너 id 또는 name]
Bash Shell에서 exit 또는 Ctrl + D를 입력하면 컨테이너가 정지된다.
Ctrl + P, Ctrl + Q를 차례대로 입력하여 컨테이너를 정지하지 않고, 컨테이너에서 빠져나온다.
$ sudo docker rm [컨테이너 id 또는 name]
$ sudo docker rm
docker ps -a -q
sudo 없이 Docker 명령어 쓰기
$ sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기
$ sudo usermod -aG docker your-user # your-user 사용자에게 권한주기
사용자가 로그인 중 일 때, 다시 로그인하면 권한이 적용된다.
🤞 마치며...
간단하게 도커와 관련된 기본 명령어에 대해 알아보았습니다. 하지만 평생 도스창에 도커 명령어를 칠 순 없기 때문에, 다음 글에서는 도커를 더욱 편리하게 사용해주는 도커 gui툴에 대해 포스팅 해보도록 하겠습니다.