Kuberdocker
[도커 스터디#2] 개발환경 세팅 및 배포 실습
by Roseline Song | July 17, 2019
개발 환경
- AWS EC2 ※ 참고 : EC2 인스턴스 생성하기
- OS : Ubuntu 18.04 LTS
자동 설치 스크립트로 도커 설치하기
도커는 리눅스 배포판 종류를 자동으로 인식해 Docker 패키지를 설치해주는 스크립트를 제공한다.
sudo wget -qO- https://get.docker.com/ | sh
wget
: 인터넷에서 파일을 받을 때 사용하는 리눅스 명령어이다.-O
: wget은 다운로드 경로의 마지막 슬래시 다음에 오는 단어를 파일 이름으로 한다. 여기서는 빈칸이 되니 다른 이름으로 저장하는 옵션 -O를 사용한다.-q
: 출력없이 종료한다.| sh
:|
는 파이프라인, 즉 wget으로 파일을 다운받은 후 셸을 실행한다는 의미이다.
우분투에서 패키지로 도커 설치하기
1. repository 인덱스 갱신하기
우분투를 포함해 리눅스 배포판들은 주요 리눅스 프로그램들을 저장소라는 곳에 한 데 모아 제공한다. 이러한 프로그램을 패키지라고 한다.
이 저장소에 올라간 패키지들은 최신 버전이 아닌 경우가 많고, 사용자 리눅스 환경설정과 맞지 않아 설치가 되지 않는 경우가 있다.
최신 패키지로 저장소에 있는 패키지들을 업데이트 하려면 아래 명령어를 입력한다.
sudo apt update // 또는 sudo apt-get update
2. 도커 다운을 위해 필요한 패키지 설치
sudo apt install apt-transport-https
sudo apt install ca-certificates
sudo apt install curl
sudo apt install software-properties-common
apt-transport-https
: 패키지 관리자가 https를 통해 데이터 및 패키지에 접근할 수 있도록 한다.ca-certificates
: ca-certificate는 certificate authority에서 발행되는 디지털 서명. SSL 인증서의 PEM 파일이 포함되어 있어 SSL 기반 앱이 SSL 연결이 되어있는지 확인할 수 있다.curl
: 특정 웹사이트에서 데이터를 다운로드 받을 때 사용software-properties-common
: *PPA를 추가하거나 제거할 때 사용한다.
※ wget대신 굳이 curl을 쓰는 이유는?
둘 다 웹사이트의 데이터를 다운로드 받을 수 있음. curl은 더 다양한 프로토콜 지원. 더 다양한 플랫폼에서 빌드/작동 가능. 자동 압축해제 지원. 업로드와 보내는 방법 지원.
wget은 왼손만으로 타이핑할 수 있다! + HTTP POST 지원
※ PPA란?
Personal Package Archive, 개인 패키지 저장소. 개발자가 소스코드를 업로드하면 자동으로 패키지화함. 사용자가 다운로드 받아 설치할 수 있게 해주는 소프트웨어 저장소.
</sub>
3. curl 명령어로 도커 다운받기
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
curl 명령어의 옵션
f
: HTTP 요청 헤더의 contentType을 multipart/form-data로 보낸다.s
: 진행 과정이나 에러 정보를 보여주지 않는다.(–silent)S
: SSL 인증과 관련있다고 들었는데, 정확히 아시는 분 있다면 댓글 부탁!L
: 서버에서 301, 302 응답이 오면 redirection URL로 따라간다.apt-key
: apt가 패키지를 인증할 때 사용하는 키 리스트를 관리한다. 이 키를 사용해 인증된 패키지는 신뢰할 수 있는 것으로 간주한다. add 명령어는 키 리스트에 새로운 키를 추가하겠다는 의미이다.
4. repository에 경로 추가하기
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
add-apt-repository
: PPA 저장소를 추가해준다. apt 리스트에 패키지를 다운로드 받을 수 있는 경로가 추가된다.apt update
: 저장소의 패키지 갱신
5. 도커 설치하기
apt-cache policy docker-ce
sudo apt install docker-ce
apt-cache
: 우분투에서 소프트웨어나 라이브러리를 터미널에서 검색한다. ex) apt-cache search 검색어policy
: 내가 어떤 저장소를 설치했는지 보여준다. 저장소를 설치했는지 안했는지 기억이 안날 때 유용하다!
6. 확인하기
도커 시스템 확인하기
sudo systemctl status docker
systemctl
: 리눅스에서 서비스를 등록, 삭제(mask, unmask) / 활성화, 비활성화(enable, disable) / 시작, 중지, 재시작(start, stop, restart) / 상태 확인(status) / 서비스 확인(list-units, list-unit-files)을 할 수 있는 명령어
Hello World
1. Hello-World 이미지 파일 다운
자동 설치 스크립트로 다운받았던 사람들은 hello-world 이미지 파일이 이미 있으니 다시 다운 받지 않아도 된다.
※ docker pull
은 도커 허브 사이트에서 이미지 파일을 가져온다.
sudo docker pull hello-world
2. 이미지 리스트 확인하기
내 시스템에 어떤 이미지들이 있는지 확인하려면 docker images
를 활용한다.
sudo docker images
3. 컨테이너를 띄워보자
두근두근!
sudo docker run hello-world
4. 컨테이너 확인하기
docker ps -a
로 어떤 컨테이너가 띄워져있는지 확인 가능하다. 명령어로 컨테이너 ID를 확인한다.
sudo docker ps -a
5. 컨테이너 삭제
docker rm
명령어로 현재 띄워져있는 컨테이너를 삭제할 수 있다. 컨테이너를 삭제해도 이미지 파일은 남는다.
sudo docker rm 컨테이너ID
sudo docker images
References
- AWS EC2에 도커 설치 및 도커파일로 웹 서버 구동시키기
- 리눅스 wget 명령어 사용 예제
- wget 옵션
- wget과 curl 차이
- apt-transport-https
- ca-certificates
- apt-key
- 우분투 repository 설명
- 우분투 apt-get 설명
- apt-cache policy
- systemd, systemctl
Subscribe via RSS