下載安裝
https://github.com/docker/compose/tags
找到對應版本下載到本地,比如1.23版本下的docker-compose-Linux-x86_64
# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compost
# chmod +x /usr/local/bin/docker-compost
# docker-compose --version
docker-compose version 1.23.2, build 1110ad01
目錄結構
# pwd
/data/docker/docker-compose/LNMP
[root@node LNMP]# tree
.
├── docker-compose.yml
└── Dockerfile
├── apps
│ ├── cmake-2.8.4.tar.gz
│ ├── libiconv-1.15.tar.gz
│ ├── mysql-boost-5.7.25.tar.gz
│ └── php-5.6.40.tar.gz
├── conf
│ ├── index.conf
│ ├── my.cnf.57
│ └── nginx.conf
├── Dockerfile_Mysql
├── Dockerfile_Ngxin
└── Dockerfile_PHP
docker-compose文件內容(build方式爲構建鏡像,image方式爲引用現有的鏡像)
version: '2'
services:
nginx01:
container_name: nginx01
restart: always
depends_on:
- php01
- mysql01
# image: centos/nginx:v1
build:
context: ./
dockerfile: Dockerfile/Dockerfile_Ngxin
ports:
- 8001:80
links:
- php01:php-fpm
volumes:
- /data/01:/data
command:
- /sbin/init
networks:
- lnmp-out
- lnmp-in
php01:
container_name: php01
restart: always
depends_on:
- mysql01
# image: centos/php:v1
build:
context: ./
dockerfile: Dockerfile/Dockerfile_PHP
links:
- mysql01:db
volumes:
- /data/01:/data
command:
- /sbin/init
networks:
- lnmp-in
mysql01:
container_name: mysql01
restart: always
# image: centos/mysql:v1
build:
context: ./
dockerfile: Dockerfile/Dockerfile_Mysql
volumes:
- /data/01:/data
command:
- /sbin/init
networks:
- lnmp-in
networks:
lnmp-in:
lnmp-out:
docker-compose常用命令:
1.docker-compose.yml未被改名並且在當前目錄下
#docker-compose up -d
2.docker-compose.yml被改名且不在當前目錄下
# docker-compose -f doc/data/docker/docker-compose/LNMP/ker-compose_lnmp.yml up -d
# docker-compose --help
build Build or rebuild services
bundle Generate a Docker bundle from the Compose file
config Validate and view the Compose file
create Create services
down Stop and remove containers, networks, images, and volumes
events Receive real time events from containers
exec Execute a command in a running container
help Get help on a command
images List images
kill Kill containers
logs View output from containers
pause Pause services
port Print the public port for a port binding
ps List containers
pull Pull service images
push Push service images
restart Restart services
rm Remove stopped containers
run Run a one-off command
scale Set number of containers for a service
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show the Docker-Compose version information
常用命令:
docker-compose up -d nginx 構建建啓動nignx容器
docker-compose exec nginx bash 登錄到nginx容器中
docker-compose down 刪除所有nginx容器,鏡像
docker-compose ps 顯示所有容器
docker-compose restart nginx 重新啓動nginx容器
docker-compose run --no-deps --rm php-fpm php -v 在php-fpm中不啓動關聯容器,並容器執行php -v 執行完成後刪除容器
docker-compose build nginx 構建鏡像 。
docker-compose build --no-cache nginx 不帶緩存的構建。
docker-compose logs nginx 查看nginx的日誌
docker-compose logs -f nginx 查看nginx的實時日誌
docker-compose config -q 驗證(docker-compose.yml)文件配置,當配置正確時,不輸出任何內容,當文件配置錯誤,輸出錯誤信息。
docker-compose events --json nginx 以json的形式輸出nginx的docker日誌
docker-compose pause nginx 暫停nignx容器
docker-compose unpause nginx 恢復ningx容器
docker-compose rm nginx 刪除容器(刪除前必須關閉容器)
docker-compose stop nginx 停止nignx容器
docker-compose start nginx 啓動nignx容器