Docker 설치하기
---
Ubuntu
sudo apt-get update
sudo apt-get install docker.io
# /usr/bin/docker.io 실행 파일을 /usr/local/bin/docker로 링크하여 사용
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
MAC & WINDOW
※ Mac OS 기준으로 설명이 포스팅이 진행되지만 Window 운영체제라고 하여 크게 다르지 않습니다.
1. 이제 본격적으로 도커를 사용해보도록 하겠다. 아래 URI 접속해서 Please Login To Download 버튼을 클릭한다.
https://hub.docker.com/editions/community/docker-ce-desktop-mac
2. 그럼 로그인을 하라는 화면이 나타난다. 아이디가 있다면 로그인을, 없다면 sign up 버튼을 눌러 회원가입을 해준다. 회원가입은 이메일 인증 외에는 특별한 절차가 없기 때문에 생략하도록 하겠다. 이후 로그인을 한 후에 도커를 설치해주면 된다.
3. 도커 파일이 다운로드하여지면 애플리케이션 폴더에 드래그해서 설치를 완료한다. 그리고 도커를 실행하면 오른쪽 이미지와 같은 창이 뜨게 되고 조금 전 가입했거나 또는 로그인했던 아이디로 로그인해준다.
Docker Desktop is starting.. 문구가 Docker Desktop is running로 바뀌면 정상적으로 실행되었음을 알 수 있다.
이제 도커가 설치되었으므로 터미널에서도 도커 버전을 확인할 수 있다.
Docker 명령어
도커의 명령은 docker <명령> 형식으로 이루어져 있다. 항상 root 권한으로 실행해야하므로 sudo를 붙이거나, 혹은 root에서 명령어를 실행해야 한다.
Search 명령어로 이미지 검색하기
도커는 Docker Hub(https://hub.docker.com/) 통해 이미지 생태계를 구축해두었는데 docker search 명령어로 이미지를 검색할 수 있다. search를 하게되면 엄청나게 많은 수의 이미지들이 나타나는데 OFFICLIAL에 [OK]가 있는 이미지들이 공식 이미지이고, 그 외의 것들은 사용자가 만든 이미지이다.
pull
>> docker pull
명령어를 이용해 이미지를 다운받는다. 필자는 root에서 명령어를 입력하였기 때문에 sudo를 붙이지 않았다.
sudo docker pull ubuntu:latest # 최신 버전 ubuntu 이미지를 다운받는다.
sudo docker pull ubuntu:14.04 # 14.04 버전 ubuntu 이미지를 다운받는다.
sudo docker pull <사용자 이름>/ubuntu # 특정 사용자의 이미지를 다운받는다.
images
>> docker images
명령어를 입력하면 방금 받은 ubuntu 이미지를 확인할 수 있다.
Container 라이프사이클
이번에는 다운 받은 이미지를 이용하여 컨테이너를 생성해보도록 하겠다. 컨테이너에는 아래와 같은 라이프 사이클이 있다.
- docker create : 이미지를 사용해서 컨테이너를 생성한다.
- docker run : 이미지를 사용해서 컨테이너를 생성하고 바로 실행까지 한다.
- docker start : 중지 상태인 컨테이너를 실행한다.
- docker stop : 실행 상태인 컨테이너를 중지한다.
- docker rm : 컨테이너를 삭제한다. 단, 이미지는 삭제되지 않는다.
run
그렇다면 docker hup에서 받은 이미지를 기반으로 컨테이너를 생성 및 실행 (docker run)을 해보도록 하겠다. 명령어는 아래와 같다.
docker run -it --name "test" ubuntu /bin/bash
- -it : 현재 실행중인 터미널에 결과를 출력한다. (-i (interactive), -t (pseudo-tty) 따로 사용해도 됨.)
- --rm : 실행 후 컨테이너를 바로 삭제한다.
- --name <컨테이너 이름> : 컨테이너 이름을 지정한다.
- ubuntu : 사용할 이미지 이름을 선택한다.
- /bin/bash : 컨테이너에서 실행하는 커맨드이다.
컨테이너를 실행한 후에는 터미널에서 처럼 cd, ls 명령으로 컨테이너 내부를 이동할 수 있다. 내부를 둘러본 다음 exit 명령어를 입력하면 bash 쉘에서 빠져나올 수 있다.
※ ubuntu image에서 /bin/bash 실행 파일을 실행했기 때문에 여기서 exit 하면 컨테이너가 정지된다.
ps
>> docker ps
명령어를 이용해서 실행 중인 컨테이너 목록을 출력할 수 있다. 필자는 방금 exit 명령어로 test 컨테이너를 중지시켰기 때문에 아무 컨테이너 목록이 나타나지 않는다.
>> docker ps -al
명령어를 입력하면 정지된 컨테이너를 포함한 모든 컨테이너 리스트가 출력된다.
start
>> docker start <컨테이너 이름>
명령어를 사용해서 조금 전에 정지했던 컨테이너를 다시 시작해보도록 하겠다. (컨테이너 이름 대신 ID 값을 이용해도 됨.)
docker start test 명령어로 test 컨테이너를 실행시킨 후 docker ps명령을 입력하면 test 컨테이너가 실행되고 있는 것을 알고 있다.
restart
>> docker restart <컨테이너 이름>
명령으로 컨테이너를 다시 시작할 수 있다.
attach
>> docker attach <컨테이너 이름>
명령어를 이용해 방금 시작한 컨테이너에 접속할 수 있다. 여기서는 /bin/bash를 실행했기 때문에 명령어를 자유롭게 입력할 수 있다. 단, 서버나 db를 실행하면 입력은 할 수 없고 출력만 할 수 있다.
- crtl + d 를 입력하면 컨테이너가 정지된다.
- crtl + p, crtl + q를 차례대로 입력하면 컨테이너를 정지하지 않고 빠져나올 수 있다.
다음 예시를 위해 정지하지 않고 빠져나오자.
exec
>> docker exec <컨테이너 이름> <명령> <매개 변수>
컨테이너가 실행된 상태에서 exec 명령어를 이용해서 컨테이너 안에 명령을 실행할 수 있다. 아래 이미지에서는 echo 명령어를 실행하고 매개변수로 "hello world"를 넣어줬기 때문에 hello world가 출력됐다. 보통 exec 명령어는 apt-get이나 yum을 이용해서 패키지나 각종 데몬을 실행할 때 사용한다.
stop
>> docker stop test
명령어로 컨테이너를 중지시킬 수 있다. stop 이후 ps 명령어로 실행 중인 컨테이너를 리스트를 출력해보면 test 컨테이너가 중지된 것을 알 수 있다.
rm
>> docker rm <컨테이너 이름>
명령어를 이용해 생성된 컨테이너를 삭제할 수 있다. 삭제 이후 ps -al 명령어로 모든 컨테이너 명력을 출력해보면 test 컨테이너가 삭제된 것을 확인할 수 있다.
rmi
>> docker rmi <이미지 이름>:<태그>
명령어를 이용해서 이미지를 삭제할 수 있다. 만약 태그를 지정하지 않으면 해당 이미지 이름을 가진 모든 이미지가 삭제된다. imges 명령어를 통해 이미지가 삭제된 것을 확인할 수 있다.
이번 포스팅에서는 docker hub에서 받아온 ubuntu 이미지를 이용해서 도커를 어떤 식으로 사용하는지에 관하여 이야기해보았다. 다음 포스팅에서는 실질적으로 도커 이미지를 직접 만들고 실행하는 것에 대해 살펴보겠다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] docker-compose: 멀티 컨테이너를 손쉽게 배포하기 (0) | 2020.07.08 |
---|---|
[Docker] Docker Network를 이용하여 네트워크 공유하기 (0) | 2020.01.31 |
[Docker] Docker Tutorial (3) : 생성한 이미지 AWS에 배포하기 (2) | 2019.12.09 |
[Docker] Docker Tutorial (2) : 직접 이미지 만들기 (0) | 2019.12.09 |
[Docker] Docker의 개요 (2) | 2019.11.30 |