Docker 7

Postgresql 컨테이너 생성하기

작업 파일 정리하기 mkdir backup : 백업 디렉토리 생성 sudo mv ./* ./backup/ : 모든 파일 이동 sudo rm -rf ./* : 모든 파일과 디렉토리 삭제 sudo docker rm -f {container ID} : 컨테이너 삭제 sudo docker system prune -a : Docker에서 사용하지 않는 리소스를 정리하는 명령어 Postgresql 오픈 소스 데이터베이스(코드베이스를 무료로 열람, 다운로드, 수정, 배포 및 재사용이 가능한 모든 데이터베이스 어플리케이션) Oracle DB, MySQL 등 상용 라이센스를 가지고 있는 데이터베이스와는 다르게 무료로 사용 가능 Oracle DB, Mysql, Microsoft SQL에 이어 네번째로 사용량이 많은 데이터..

Docker 2023.06.01

Docker container 2개 이상 띄우기

ports 혹은 서비스 이름 등 중복되면 안되는 몇몇 옵션이 존재하기 때문에 중복되는 값이 있는지 확인해야 하며, 만약 특정 값이 중복되어 들어간다면 컨테이너가 정상적으로 생성되지 않거나 생성하는 과정에서 에러가 발생할 수 있음 docker-compose.yml 파일 작성해준 다음, 컨테이너 생성해주기 sudo docker compose up 여러 개 만들 때에는 특정 컨테이너가 먼저 실행되어야 하는 경우가 있음. depends_on 옵션을 사용해 컨테이너간 실행 순서를 컨트롤하면 됨. version: '3.8' services: example1: container_name: example1 image: 'httpd:latest' ports: - 80:80 depends_on: - example2 # 해..

Docker 2023.06.01

Entrypoint 활용하기

Entrypoint docker 컨테이너가 생성될 때 기본적으로 실행 할 명령어를 지정해 주는 옵션. 예를 들어, 데이터베이스를 실행시키기 위해 만든 이미지는, 컨테이너가 생성될 때 데이터베이스 서비스를 실행시켜야 하는데, 이 때 사용되는 옵션이 바로 entrypoint entrypoint는 Dockerfile과 docker-compose.yml 모두 작성 가능. 만약 Dockerfile, docker-compose.yml 모두 entrypoint가 작성되어 있다면 Dockerfile의 entrypoint는 무시되고 docker-compose.yml의 명령어가 우선적으로 수행됨. ** Dockerfile 활용하기 FROM python:3.9.15 # .pyc 파일을 생성하지 않도록 설정하기 ENV PYT..

Docker 2023.06.01

Dockerfile = Docker에서 이미지 빌드하기

Dockerfile Docker 의 이미지를 직접 생성하기 위한 용도로 작성하는 파일 Dockerfile을 작성할 때는 기본이 되는 이미지를 지정한 후, 특정 패키지를 설치하거나 파일을 추가하는 등의 작업을 통해 사용자가 직접 이미지를 빌드 사용자가 개발한 프로젝트 혹은 설정파일 등을 이미지에 포함시키거나 이미지에 기본적으로 특정 패키지를 설치하고싶을 때 등 다양한 용도로 사용함. 예를 들어 docker에서 django를 배포한다고 가정 했을 때, 기본 python 이미지를 불러온 후 django 패키지를 pip install 한 후 이미지를 생성함. ** Dockerfile 작성 # 빌드할 때 사용할 이미지를 지정함. FROM httpd:latest # 현재 경로에 존재하는 index.html 파일을 ..

Docker 2023.06.01

Docker Volume 간단히 이해

Volume 컨테이너에 저장되는 데이터의 일부를 host와 공유해 주는 역할 host에 저장 된 데이터는 사용자가 직접 삭제하지 않는 이상 계속해서 유지되며, 때문에 컨테이너가 종료된다 하더라도 데이터는 유실되지 않음 이와 같은 특성 덕분에, 컨테이너 내부에서 변경되는 내용들을 유지해야 할 때 주로 사용 Docker Volume docker 엔진이 관리하는 volume을 생성하는 방식. docker volume 방식을 사용해 생성된 volume은 host의 /var/lib/docker/volumes/ 경로에 저장 docker에서 가장 권장하는 방식 컨테이너간 파일을 공유하거나 중요도가 높은 파일들을 사용자가 쉽게 수정/삭제 하지 못하도록 할 때 주로 사용 Bind Mount docker volume 방식..

Docker 2023.06.01

Container Port Forwarding

포트 포워딩 : 외부에서 서버의 특정 포트에 접근했을 때 지정한 서비스로 전달해 주는 것 1. Docker-compose.yml version: '3.8' # docker-compose.yml에 사용될 문법 버전을 정의 services: example: # 서비스 이름을 지정합니다. 서비스 이름은 컨테이너끼리 통신할 때 사용 container_name: example # 컨테이너 이름을 지정 image: 'httpd:latest' # 컨테이너를 생성할 때 사용될 이미지를 지정 ports: # 포트포워딩 설정 - 80:80 # 외부에서 80 포트로 접속했을 때 컨테이너의 80 포트로 연결 restart: always # 컨테이너가 종료됐을 때 다시 실행 2. 컨테이너 실행 sudo docker compos..

Docker 2023.06.01

Docker compose가 무엇일까요?

정의 docker-compose는 docker 2개 이상의 컨테이너를 더욱 간편하게 관리하기 위해 사용되는 툴 docker-compose.yml (혹은 .yaml)이라는 파일에 컨테이너에서 사용 될 이미지, 옵션 등을 작성한 후 사용하게 됨. 이를 통해 docker 명령어만 사용할 때보다 여러 컨테이너를 더 간편하고 직관적으로 컨테이너를 관리할 수 있다. 실행할 때 사용자가 작성한 docker-compose.yml 파일의 내용에 맞게 컨테이너를 설정하고 실행하게 되기에, docker-compose.yml 파일이 존재하지 않는 경로에서 docker compose 명령어를 실행시킬 경우 에러가 발생할 수 있다. 설치 sudo mkdir -p /usr/lib/docker/cli-plugins # /usr/li..

Docker 2023.06.01