본 게시물은 스스로의 공부를 위한 글입니다.
틀린 내용이 있을 수 있습니다.
도커 명령어를 파일로 작성 후 실행하는 방법
실무에서는 대부분 도커 컴포즈를 이용한다.
맥이나 윈도우의 경우 docker설치시 자동으로 같이 설치
docker-compose version
리눅스의 경우
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)"
sudo chmod +x /usr/local/bin/docker-compose
//docker-compose.yml
version: '2'
services:
db:
image: mariadb:10.5
volumes:
- ./mysql:/var/lib/mysql
restart: always #도커가 죽이면 자동으로 재실행
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
volumes:
- ./wp:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
docker-compose up
docker-compose down
version: '3'
버전에 따라 지원하는 도커 엔진 버전도 다르다.
service: 실행할 컨테이너 정의. docker run --name django
와 같다고 할수있다.
service:
diango:
...
service:
django:
image: django-sample
services:
django:
...
ports:
- "8000:8000"
services:
mysql:
...
environment:
- MYSQL_ROOT_PASSWORD=somewordpress: '3'
services:
django:
...
volumes:
- ./app:/app
services:
django:
restart: always
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile-dev
version: '2'
services:
app:
image: php:7
volumes:
- ./hello.php:/app/hello.php
command: "php /app/hello.php"
up: docker-compose.yml에 정의된 컨테이너를 실행
docker-compose up
docker-compose up -d
: docker run
의 -d
옵션과 동일docker-compose up --force-recreate
: 컨테이너를 새로 만들기docker-compose up --build
: 도커 이미지를 다시 빌드(build로 선언시에만)start: 멈춘 컨테이너를 재개
docker-compose start
docker-compose start wordpress
: wordpress 컨테이너만 재개restart: 컨테이너를 재시작
docker-compose restart
docker-compose restart wordpress
: wordpress 컨테이너만 재시작stop: 컨테이너를 멈춤
docker-compose stop
docker-compose stop wordpress
: wordpress 컨테이너만 멈춤down: 컨테이너를 종료하고 삭제
docker-compose down
logs: 컨테이너의 로그
docker-compose logs
docker-compose logs -f
: 로그 followps: 컨테이너 목록
docker-compose ps
exec: 실행 중인 컨테이너에서 명령어 실행
docker-compose exec {컨테이너 이름} {명령어}
docker-compose exec wordpress bash
build: 컨테이너 build 부분에 정의된 내용대로 빌드
docker-compose build
docker-compose build wordpress
: wordpress 컨테이너만 build