문서의 이전 판입니다!
docker compose 형태로 사용가능해졌다.$HOME/.docker/cli-plugins/docker-compose 로 다운로드한다.chmod +x $HOME/.docker/cli-plugins/docker-compose 로 실행 권한을 주면 이제 docker compose 명령으로 사용가능해진다.services 의 이름에 밑줄(_)이 있을 경우, 동일 docker-compose 내의 다른 컨테이너에서 해당 이름으로 네트워크 접속이 안됐다.Creating network "xxx_default" with the default driver ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
docker-compose.yml 에 명시해주거나 직접 생성한 뒤 명시해준다.services:
myservice:
network_mode: bridge
bridge 사용시에는 docker container 들 간에 docker container 이름 기반의 lookup이 작동하지 않는다.default로 지정한다. 이 경우 이름 lookup 도 잘 작동한다.networks:
default:
driver: bridge
ipam:
config:
- subnet: ${MY_SUBNET:-192.168.100.1/24} # 192.168.100.x 대역의 subnet 으로 네트워크 생성
# .env 파일이나 환경 변수로 MY_SUBNET 값을 강제 지정가능함.
# 만약 network 이름이 default 가 아니라면, 각 service 에 네트워크 이름 명시 필요
services:
myservice:
networks:
- mynetwork
networks:
mynetwork:
driver: bridge
ipam:
config:
- subnet: ${MY_SUBNET:-192.168.100.1/24} # 192.168.100.x 대역의 subnet 으로 네트워크 생성
.env 파일을 만들어서 KEY=VALUE 형태로 추가해주면 docker-compose 실행시 적용된다.--env-file=파일명 옵션을 준다.MY_ENV_VAR=xxx docker compose up -d # 혹은 export MY_ENV_VAR=xxx docker compose up -d
docker-compose.yml 내에서의 환경변수servicename:
environment:
- MY_ENV_VAR=xxx # 명시적 값 설정
- ANOTHER_ENV_VAR # 이 값은 외부 설정값이 그대로 container 로 주입됨.
env_file:
- web-variables.env # 환경변수 파일 내의 환경변수들이 전달됨.