[GCP] Docker 사용법 #1
도커를 설치했으니 이제 사용을 해야하는데 GUI에 익숙해진터라
어디서부터 어떻게 해야할지 모르겠다.
필자는 Docker를 통해 airflow를 설치하는것이 목적이다.
아래의 페이지에서 필요한 도커의 이미지가 있는지 찾아보도록하자
https://hub.docker.com/search?q=&type=image
Docker Hub
hub.docker.com
정말 수많은 airflow관련 이미지들이 존재한다.
위의 airflow이미지가 가장 명확하고 Bitnami에서 나온터라 이것을 받기로 하였다.
서버에 접속하여 docker search [옵션] <검색어>를 이용한 방법도 존재한다. ==>보통은 이방법을 사용
$docker search [옵션] <검색어>
만약 내가 많이 쓰고 익숙한 이미지를 내려받는다면
$sudo docker run apache/airflow
를 입력하면 자동으로 설치와 실행이 진행된다.
그게 아니라면
docker pull [옵션] <이미지명>[:태그명]
$sudo docker pull apache/airflow
옵션을 주지 않았기 떄문에 자동으로 최신 버전으로 다운받아 진다.
$docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
을 이용해서 container로 올린다.
옵션설명
-d | detached mode 흔히 말하는 백그라운드 모드 |
-p | 호스트와 컨테이너의 포트를 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
–name | 컨테이너 이름 설정 |
–rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 |
–link | 컨테이너 연결 [컨테이너명:별칭] |
#Docker 다루기
docker images [옵션] [repository명]
$sudo docker images or sudo docker image ls
현재 내가 가지고있는 docker image 목록을 보는것
※ 옵션
-a, --all : 모든 이미지 표시
--digests : digest 표시
--no-trunc : 모든 결과 표시
-q, --quiet : 이미지 ID만 표시
$sudo docker rmi [이미지id]
도커 이미지 삭제
$sudo docker ps -a
현재 실행중인 혹은 종료된 컨테이너 확인
$sudo docker rm [컨테이너id]
도커 이미지 삭제
위의 사항을 기본적으로 알고 시작한다.
$sudo docker images
로 확인한다
이제 해당 이미지를 컨테이너화 시켜야한다.
docker run [옵션] <이미지명>[:태그명] [값]
※ docker run 기본 옵션
-a , --attach : 표준 입/출력 표준 에러 출력을 연결 (STDIN, STDOUT, STDERR)
--cidfile : 컨테이너 ID를 파일로 출력한다.
-d, --detach : 컨테이너를 생성하고 백그라운드에서 실행시킨다.
-i, --interactive : 컨테이너 표준 입력을 연다.(컨테이너 내부에서 발생하는 일을 사용자에게 보여준다)
-t, --tty : 단말 디바이스(tty)를 사용한다.(터미널과 비슷한 환경으로 조성해준다.)
--name : 컨테이너명을 지정한다.
$sudo docker run -itd --name airflow apache/airflow bash
위와같이 컨테이너가 실행된 것을 알 수 있다.
백그라운드로 실행을 했기떄문에 컨테이너로 접속하기 위해서는 attach를 이용하여 접속한다.
$sudo docker attach airflow
여기서 다시 빠져나오고 싶을떄는
ctrl+q를 입력하여 빠져나온다.