도커(Docker)는 소프트웨어 컨테이너 기술을 제공하는 플랫폼으로, 애플리케이션과 그 의존성들을 격리된 환경에서 실행할 수 있게 해줍니다. 이를 통해 애플리케이션을 효율적으로 개발, 배포, 및 실행할 수 있습니다. 도커는 다양한 운영 체제 및 클라우드 환경에서 동일한 방식으로 동작하므로 개발 환경과 프로덕션 환경 간의 일관성을 제공합니다.
docker-compose.yml
파일을 사용하여 애플리케이션의 서비스, 네트워크, 볼륨 등을 정의하고 관리할 수 있습니다.도커(Docker)와 가상머신(Virtual Machine, VM)은 둘 다 애플리케이션을 격리된 환경에서 실행하고 관리하는 기술이지만, 그 구현 방식과 특징에서 차이가 있다.
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ sudo systemctl status docker
$ docker -v
$ sudo docker images
$ sudo docker ps
$ sudo docker container ls
$ sudo docker ps -a
$ sudo docker pull {{docker-image-name}}
$ sudo docker logs {{container_id}}
$ sudo docker build -t {{docker-image-name]}:{{tag-name}} .
# ex) sudo docker build -t duckbill413/enjoytrip:lastest .
$ sudo docker rename <old_name> <new_name>
$ sudo docker run -d -p {{in-port}}:{{out-port}} --name={{container-name}} {{image-name}}
# ex) docker run -d -p 6379:6379 --name=redis redis:alpine
$ sudo docker exec -it {{container-name}} /bin/sh
or
$ sudo docker exec -it {{container-name}} /bin/bash
Docker
가입 및 이메일 인증
필요Docker Compose는 여러 개의 도커 컨테이너를 정의하고 실행하기 위한 도구로, 단일 파일에 애플리케이션의 서비스, 네트워크, 볼륨 등을 설정할 수 있습니다.
docker-compose.yml
파일을 사용하여 여러 컨테이너 간의 관계와 설정을 정의하고, 한 번에 여러 컨테이너를 실행하거나 관리할 수 있습니다.
Docker Compose
를 사용하면 복잡한 애플리케이션을 쉽게 정의하고 관리할 수 있으며, 개발 환경에서부터 프로덕션 배포까지 일관된 환경을 유지할 수 있습니다.
docker-compose.yml
파일 내에서 각 서비스는 하나의 도커 컨테이너를 나타냅니다. 서비스 정의에는 이미지, 포트 매핑, 환경 변수, 볼륨 마운트 등이 포함될 수 있습니다.$ sudo docker-compose build
$ sudo docker-compose up
$ sudo docker-compose up -d *# docker-compose 백그라운드 실행*
$ sudo docker-compose down
$ sudo docker-compose ps
$ sudo docker-compose pull
docker volume prune -f
설치 가능한 버전 확인
$ sudo curl -SL "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version
프로젝트 최상단에 docker-compose.yml
파일 생성
version: "4"
services:
springboot:
image: {{docker-id}}/{{spring-repository-name}} # ex) duckbill413/test-spring:latest
container_name: {{spring-container-name}} # ex) test-spring
ports:
- "8080:8080"
networks:
- {{network-name}} # ex) test_net
restart: "always"
nginx:
image: {{docker-id}}/{nginx-repository-name}} # ex) duckbill413/test-nginx:latest
container_name: {{nginx-container-name}} # ex) test-nginx
ports:
- "80:80"
depends_on:
- {{nginx-upstream-address}} # ex) springboot
networks:
- {{network-name}}
restart: "always"
networks:
{{network-name}}:
driver: bridge