安装docker-componse:
#安装pip源
yum -y install epel-release
yum -y install python-pip
#安装
pip install docker-compose
#查找路径
which docker-compose
#修改权限
chmod +x 安装路径下的/docker-compose
#版本
docker-compose version
首先执行 cd ~ 在其目录下创建docker 进入该目录,然后执行下面的操作。
安装nginx:
1.先在宿主机创建挂载目录:mkdir -p /data/nginx/{conf,conf.d,html,logs}
2.在/data/nginx/conf/创建nginx.conf文件
3.在/data/nginx/conf.d/default.conf
4.在/data/nginx/html/ 创建index.html
5.拉去镜像 docker pull nginx
nginx.conf:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
default.conf:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
安装redis:
1.先在宿主机创建挂载目录:mkdir -p /data/myredis/{redis,data}
2.docker pull redis:alpine
安装rabbitmq:
1.docker pull rabbitmq:management-alpine
安装influxdb:
1.docker pull influxdb:latest
安装postgres:
1.先在宿主机创建挂载目录:mkdir -p /data/pgserver/pg_data/data
2.docker pull postgres:9.6.2
安装mysql:
1.先在宿主机创建挂载目录:mkdir -p /data/mysql5.7/{lib,config/my.cnf,init}
2.docker pull mysql
在docker目录下创建配置docker-componse.yml文件:
version: '3'
services:
proxy:
restart: always
image: nginx:latest
ports:
- 80:80
- 8080:8080
- 9443:443
volumes:
- ./data/nginx/html:/usr/share/nginx/html
- ./data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./data/nginx/conf.d:/etc/nginx/conf.d
- ./data/nginx/logs:/var/log/nginx
# - /home/xx/xxx:/home/xxx/xxx:ro
- ./data/nginx/conf.d/proxy.conf:/etc/nginx/proxy.conf
redis:
image: redis:alpine
restart: always
ports:
- 6379:6379
volumes:
- ./data/myredis/redis:/usr/local/etc/redis
- ./data/myredis/data:/data
rabbitmq:
image: rabbitmq:management-alpine
restart: always
hostname: maobc-rabbit
environment:
RABBITMQ_DEFAULT_USER: zhw
RABBITMQ_DEFAULT_PASS: 123456
ports:
- 5672:5672
- 15672:15672
volumes:
- rabbit-home-dir:/var/lib/rabbitmq
- rabbit-conf:/etc/rabbitmq/rabbitmq.config
- rabbit-database-dir:/var/lib/rabbitmq/mnesia/rabbit
influxdb:
image: influxdb:latest
restart: always
ports:
- 8086:8086
- 8083:8083
environment:
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: maobc2018
INFLUXDB_USER: maobc
INFLUXDB_USER_PASSWORD: maobc2017
volumes:
- influxdb-data:/var/lib/influxdb
- influxdb-conf:/etc/influxdb
mysql:
image: mysql
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456
entrypoint: ['/entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
volumes:
- ./data/mysql5.7/lib:/var/lib/mysql
- ./data/mysql5.7/config/my.cnf:/etc/my.cnf
- ./data/mysql5.7/init:/docker-entrypoint-initdb.d/
postgres:
restart: always
image: postgres:9.6.2
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: 123456
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- ./data/pgserver/pg_data/data:/var/lib/postgresql/data/pgdata
#设置宿主机创建挂载目录
volumes:
bug-data:
bug-plugins:
bug-public:
bug-db-data:
redis-data:
mysql-conf:
mysql-data:
redis-conf:
redis-data:
#grafana-plugins:
rabbit-home-dir:
rabbit-conf:
rabbit-database-dir:
rabbitdev-home-dir:
rabbitdev-conf:
rabbitdev-database-dir:
influxdb-data:
influxdb-conf:
注意:如果指向安装其中一个可以将docker-componse.yml中对应的注释掉,如不想安装mysql,可以将mysql对应的配置删除,但是需要注意保证yml文件格式正确。
启动:
启动所有服务:docker-compose up -d --force-recreate
启动单个软件服务:docker-compose up -d nginx
修改完配置文件后重新创建容器:docker-compose up -d --force-recreate
常用的命令:
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容器