一、安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/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 #installed test
#卸载操作
sudo rm /usr/local/bin/docker-compose #Uninstallation
二、使用
任意选择一个目录,新建docker-compose.yml文件
version: '3'
services:
nginx:
image: nginx:latest
ports:
- '80:80'
- '443:443'
volumes:
- /root/wp_yunlan/nginx/:/home/user/nginx/
mariadb:
image: bitnami/mariadb:latest
volumes:
- /root/wp_yunlan/mariadb:/home/user/mariadb
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=wordpress
wordpress:
image: wordpress:latest
depends_on:
- mysql
- nginx
environment:
- WORDPRESS_DB_PASSWORD=123456
- WORDPRESS_USERNAME=neptunemoon #这个账户你是自己设定的
- WORDPRESS_PASSWORD=123123 #这个密码是你自己设定的
ports:
- '8080:80'
- '8081:443'
working_dir: /var/www/html
volumes:
- wordpress:/var/www/html
- services标签下表示有4个容器,容器名可以自定义。
$ docker-compose up
启动$ docker-compose stop
停止$ docker-compose rm
删除( ps: 在选择的目录下,会自动选择你新建的docker-compose.yml文件,不用指定 )
$ docker-compose [-f docker-compose.yml] up -d #创建并启动容器,后台运行【文件可以指定,当前目录下可以省略】
$ docker-compose [-f docker-compose.yml] down #停止并删除服务【当前目录下可省略-f】
$ docker-compose stop wordpress #停止容器运行,wordpress是yml中的一个容器
$ docker-compose rm wordpress #删除其中一个容器
$ docker-compose start wordpress #启动容器
$ docker-compose restart nginx
$ docker-compose logs --tail 10 nginx
$ docker-compose port nginx
$ docker-compose kill nginx #杀掉容器
$ docker-compose build nginx #构建或重建服务
- depends_on: 依赖项,启动顺序不重要,主要根据依赖去先启动;
- environment: 环境变量;
- ports: 端口映射;
- volumes: 文件映射;
- image: 镜像,同时可以结合【build】来使用自定义容器;
...
service: #这里举一个开源项目的例子
...
jeecg-boot-system:
build:
context: ./jeecg-boot-module-system # 这里是 Dockerfile 所在的文件夹
restart: always
container_name: jeecg-boot-system
image: jeecg-boot-system # 这里指向的是上面build构建的镜像
ports:
- 8080:8080
...
三、注意事项
- 这里着重提一下image如果是自定义Dockerfile,必须要使用
build -> context: ./xxxx
指定Dockerfile文件路径,然后使用docker-compose up -d --build [容器名]
运行(等同于docker build -t 容器名 ./Dockefile
构建好镜像,再运行) - (建议) 多使用docker-compose;
- (建议) 数据请尽量用volumes放在容器外;
- (建议) 不要所有服务放在一个容器里;
(完)