docker-compose部署Vue项目
目录结构
webdata
└── front-lib-web
├── conf.d
│ └── default.conf
├── docker-compose.yml
└── html
└── frontDemo
* conf.d/default.conf
server {
listen 6888;
server_name localhost;
access_log /var/log/nginx/host.access.log main;
error_log /var/log/nginx/error.log error;
location / {
root /usr/share/nginx/html/frontDemo;
index /frontDemo/index.html index.htm;
try_files $uri $uri/ /frontDemo/index.html;
}
location /frontDemo {
root /usr/share/nginx/html;
index /frontDemo/index.html index.htm;
try_files $uri $uri/ /frontDemo/index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
在使用docker-compose之前先执行该命令开启docker服务:sudo systemctl start docker
* docker-compose.yml
version: "3"
services: #指定服务名称
web-service:
container_name: front-lib-web #指定容器名称
ports:
- "6888:6888" # 左侧为docker暴露端口 右侧为nginx端口(服务器端口)
image: nginx:latest #nginx镜像
volumes: # volumes挂载方式
- ./html:/usr/share/nginx/html # 挂载dist静态资源到容器中 ./当前目录
- ./conf.d:/etc/nginx/conf.d # 挂载nginx配置文件的目录到容器,替换nginx容器中的默认配置目录
restart: always # 重启策略:容器退出时重启容器
docker-compose相关命令
# 默认使用docker-compose.yml构建镜像
$ docker-compose build
$ docker-compose build --no-cache # 不带缓存的构建
# 指定不同yml文件模板用于构建镜像
$ docker-compose build -f docker-compose1.yml
# 列出Compose文件构建的镜像
$ docker-compose images
# 启动所有编排容器服务
$ docker-compose up -d
# 查看正在运行中的容器
$ docker-compose ps
# 查看所有编排容器,包括已停止的容器
$ docker-compose ps -a
# 进入指定容器执行命令
$ docker-compose exec nginx bash
$ docker-compose exec web python manage.py migrate --noinput
# 查看web容器的实时日志
$ docker-compose logs -f web
# 停止所有up命令启动的容器
$ docker-compose down
# 停止所有up命令启动的容器,并移除数据卷
$ docker-compose down -v
# 重新启动停止服务的容器
$ docker-compose restart web
# 暂停web容器
$ docker-compose pause web
# 恢复web容器
$ docker-compose unpause web
# 删除web容器,删除前必需停止stop web容器服务
$ docker-compose rm web
# 查看各个服务容器内运行的进程
$ docker-compose top
学而不思则罔,思而不学则殆!