时间:20200528
本文以centos系统为例
官方文档 官方文档 docker-compose docker-compose
需要先安装docker docker安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
备注:如果有必要的话,可以建立软连接
docker-compose 安装成功,但是找不到命令是才执行以下语句,需视情况而定
如果第三步成功,也可以不用执行
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version
控制台输出以下样例为安装成功
docker-compose version 1.25.5, build 1110ad01
命令 | 解释 |
---|---|
docker-compose up | 前台运行容器 |
docker-compose up -d | 后台运行容器 |
docker-compose start | 启动容器 |
docker-compose stop | 停止当前容器 |
docker-compose down | 停止并移除容器 |
version: '3.7'
services:
db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: kwtFIGBM3
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
ports:
- 3306:3306
volumes:
- ./data:/var/lib/mysql
# 下面是mysql的web管理界面
# adminer:
# image: adminer
# restart: always
# ports:
# - 8080:8080
version: '3'
services:
rabbitmq:
image: rabbitmq:3-management
restart: always
ports:
- 5671:5671
- 5673:5672
- 4368:4369
- 35672:25672
- 35671:15671
- 5572:15672
environment:
RABBITMQ_DEFAULT_USER: root #默认为guest
RABBITMQ_DEFAULT_PASS: km^Lq5L6lGBS5huZ #默认为guest
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
version: '3.7'
services:
seafile:
image: seafileltd/seafile
restart: always
container_name: seafile
environment:
- SEAFILE_ADMIN_EMAIL=admin
- SEAFILE_ADMIN_PASSWORD=!tAzvz8dqRP6%eVhmoUr
ports:
- 8990:80
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=admin
- MYSQL_PASSWORD=admin
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8991:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
ports:
- 8000:8081
volumes:
- nexus-data:/nexus-data
volumes:
nexus-data:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: '宿主机ip'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://宿主机ip:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
version: '3.7'
services:
jenkins:
restart: always
image: jenkinsci/blueocean
container_name: jenkins
ports:
- 5572:8080
- 5573:50000
environment:
TZ: Asia/Shanghai
volumes:
- ./data:/var/jenkins_home
version: '3.7'
services:
redis:
image: redis:5.0
restart: always
container_name: redis
command: redis-server --requirepass 7%fPZZn&in!98u5i
ports:
- 6379:6379
volumes:
- ./conf/redis.conf:/usr/local/etc/redis/redis.conf
- ./log:/var/log/redis
- ./data:/data/redis
version: '3.7'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 123456
mongo-express:
image: mongo-express
restart: always
ports:
- 9000:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
version: '3.7'
services:
sonarqube:
image: sonarqube
restart: always
container_name: sonarqube
ports:
- 9000:9000