docker學習-08docker-componse安裝相關軟體
阿新 • • 發佈:2018-12-27
安裝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容器