Docker 19

[Python] Docker SDK를 통한 도커 다루기

개요 2023.07.11 - [Airflow] DockerOperator를 살펴보면서 Python을 이용해 Docker를 다룰 수 있다는 것도 알게 되었다. 그렇다면 방법을 알아보는 게 인지상정……까지는 아니지만 궁금하니 간단히 정리해보려고 한다. Docker SDK for Python Docker SDK for Python은 Docker Engine API을 사용하기 위한 Python 라이브러리다. 컨테이너 실행이나 관리와 같은 docker 명령어로 할 수 있는 모든 작업을 Python 애플리케이션 내에서 수행할 수 있게 해 준다. 공식 문서 : https://docker-py.readthedocs.io/en/stable/# 라이브러리 설치 Docker SDK를 사용하기 위해서는 라이브러리 설치가 필요..

Python 2023.07.18

[Docker] Bind Mount

개요 2023.07.12 - [Docker] Volume에서 컨테이너에서 사용한 데이터를 유지하기 위한 방법 중 하나인 Volume에 대해서 알아보았다. 이 글에서는 다른 방법 중 하나인 Bind Mount에 대해서 정리한다. Bind Mount Docker 프로세스가 관리하는 호스트 경로를 저장 공간으로 사용하는 Volume과 다르게, Bind mount는 호스트에 저장된 임의의 파일 또는 경로를 컨테이너에 마운트 하여 사용할 수 있다. 파일이나 경로는 호스트 시스템에서 절대 경로로 참조된다. 만약 호스트에 존재하지 않는 파일이나 경로를 마운트 시도하는 경우, Docker에 의해 자동으로 생성된다. Bind Mount 하여 컨테이너 실행 Volume을 사용하는 것과 동일하게 --mount, -v 옵션으..

Docker 2023.07.13

[Docker] Volume

개요 기본적으로 Docker 컨테이너 내에 저장되는 데이터는 컨테이너가 삭제될 때 휘발된다. 컨테이너 생명주기와 관계없이 데이터를 유지하기 위해서는 컨테이너 내 저장 공간을 호스트와 연결해야 하는데, Docker는 그 방법 중 하나로 Volume을 제공한다. 이 글에서는 Volume에 대해 정리해보려고 한다. Volume Volume은 컨테이너에서 생성되거나 사용되는 데이터를 유지하기 위한 방법 중 하나로, Docker가 관리하는 Host 파일 시스템의 일부에 컨테이너 데이터가 저장된다. Linux의 경우 /var/lib/docker/volume에 해당한다. Docker CLI나 API를 통해 Volume을 관리할 수 있고 백업 또는 마이그레이션 하기 좋다. Volume 생성 / 조회 / 삭제 Docke..

Docker 2023.07.12

[Docker] 컨테이너 시작/중지/재시작

개요 Docker로 PostgreSQL을 사용하고 있는데, 서버를 자주 끄고 켜다 보니 사용할 컨테이너가 중지 상태로 남아있다. 데이터베이스이므로 기존 컨테이너를 계속 사용하기 위해 컨테이너를 재시작하는 방법을 적어둔다. 컨테이너 시작 중지된 컨테이너를 시작한다. docker start [OPTIONS] CONTAINER [CONTAINER...] 컨테이너 재시작 컨테이너를 재시작한다. docker restart [OPTIONS] CONTAINER [CONTAINER...] 컨테이너 중지 실행 중인 컨테이너를 중지한다. docker stop [OPTIONS] CONTAINER [CONTAINER...] 참고 문서 https://blog.naver.com/foxrain93/220663874441 https..

Docker 2023.04.10

[Docker] 이미지/컨테이너 파일로 저장/로드

docker commit 도커는 일반적으로 build, commit 명령으로 만든 이미지를 저장소에 업로드하고, 업로드한 이미지를 내려받아 사용한다. 다만 간혹 저장소를 거치지 않고 도커 이미지를 옮겨야 할 때가 존재하는데, 이 경우에는 도커 이미지와 컨테이너를 tar 형식으로 저장할 수 있다. 도커 이미지를 tar로 저장 도커 이미지를 tar 형식으로 저장한다. save 시 도커 이미지 태그를 지정하지 않으면, 이름이 같고 태그가 다른 모든 이미지를 저장한다. docker save [OPTIONS] IMAGE [IMAGE...] # -o : --output. 표준 출력 대신 파일로 저장한다. # 예시 docker save ubuntu -o ubuntu.tar 또는 아래와 같이 파일 리다이렉션으로도 실행..

Docker 2022.06.30

[Dockerfile] ARG / ENV

Dockerfile에서 사용하는 ARG 명령문과 ENV 명령문을 정리한다. ARG 도커 이미지 빌드를 위해 Dockerfile 내에서 사용하는 변수 빌드 시점에 사용하며, docker build 명령의 --build-arg 옵션에 해당한다. 사용할 때는 ${NAME}의 형태로 읽어서 사용할 수 있다. ARG ARG = FROM ${} FROM 이전에 있는 ARG는 FROM에서만 사용 가능하다. 즉, 내부에서 사용하기 위해서 한번 더 선언해야 한다. ARG centos_version FROM centos${centos_version} AS builder ARG centos_version # 안에서 사용하려면 또 ARG를 선언해야 한다. ENV CENTOS_VERSION=${centos_version} EN..

Docker 2022.05.19

[Docker] 이미지 용량 확인

서버에 저장된 Docker 이미지 용량을 확인하고자 한다. Docker의 디스크 사용량은 기본적으로 docker system df 명령으로 확인할 수 있다. docker system df docker system df # -v : --verbose. 공간 사용에 대한 상세 정보 표시 서버에 저장된 이미지는 총 15개이며, 그 용량의 합은 2.061GB 인 것을 확인할 수 있다. 이미지 각각에 대한 용량 정보도 확인할 필요가 있다면, 상세 정보를 표시하는 -v, --verbose 옵션 사용하면 된다. docker system df -v SHARED SIZE 행은 이미지가 다른 이미지와 공유하는, 즉 공통 데이터에 해당하는 공간의 용량이다. UNIQUE SIZE는 해당 이미지에서만 사용하는 공간의 용량이다...

Docker 2022.03.31

[Docker] inspect - 이미지/컨테이너 세부정보 확인

inspect은 기본 명령어 중 하나로 도커 이미지 또는 컨테이너의 세부 정보를 확인할 수 있다. 명령어 docker inspect 출력 결과는 JSON 형식이다. -f 옵션을 사용하면 특정 항목만을 출력할 수도 있다. 아래 명령어는 컨테이너에 할당된 IP 주소를 확인한다. docker inspect -f "{{ .NetworkSettings.IPAddress }}" Docker 컨테이너 IP 목록 확인 docker inspect -f '{{.Name}} -> {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

Docker 2022.03.22

[Docker] 사설 저장소 접속

공식 도커 이미지를 찾고, 다운로드하여 사용할 수 있는 저장소는 docker hub이다. docker에서 운영하는 docker hub는 docker 클라이언트와 기본적으로 연동되어 있으며, 아래와 같은 명령어로 터미널 환경에서 로그인할 수 있다. docker login 당연하지만 사람들은 공식 저장소만을 사용하지는 않는다. 회사의 경우 사내 보안을 위해서 사설 저장소를 제공하기도 한다. 그런 경우에는 docker login 명령어에 접속할 저장소의 주소를 적어주면 된다. docker login [OPTIONS] [SERVER] # -p : --password # -u : --username # --password-stdin : 표준입력으로 비밀번호 가져오기 # 예시 docker login localhos..

Docker 2022.03.02

[Docker] Dockerfile로 이미지 생성

2021.12.21 - [Docker] Dockerfile에서는 Dockerfile의 개념과 형식, 명령문 몇 가지에 대한 내용을 정리했다. 이 글에서는 Dockerfile 주 사용처인, 이미지 생성 방법에 대한 내용을 정리한다. 이미지 생성이 필요한 이유 Docker Hub 등에서 사용할 구성 요소나 서비스를 찾을 수 없는 경우 개발한 애플리케이션의 배포 편의성 이미지 생성 방법 1. Dockerfile 작성 2. 작성한 Dockerfile build build 명령을 이용해 작성한 Dockerfile로 이미지를 생성한다. docker build -t # -t : 생성한 이미지의 이름과 태그 지정 # 예시 docker build . -t docker_hub_username/imagename docker..

Docker 2021.12.22
1 2