- 删除所有容器以及镜像:
docker stop $(docker ps -q) & docker rm $(docker ps -aq) ===> 停止所有容器,并删除所有容器
docker rmi $(docker images -q) ===> 删除所有镜像
- 创建文件夹,放置需要部署的文件:
- 将前端打包后的 dist 文件夹放入该文件下

- 修改后端配置文件,打包后上传至服务器:

- 编写启动后台的 Dockerfile 文件:
#基础镜像
FROM kdvolder/jdk8:latest
#作者
MAINTAINER lijiaxu
# 在主机 /var/lib/docker 目录下创建一个临时文件,并链接到容器的 /tmp
VOLUME /tmp
#将 jar 包添加至容器并更名为 community.jar
ADD SpringBootCommunity-1.0-SNAPSHOT.jar community.jar
#运行的 jar 包
RUN bash -c 'touch /community.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/community.jar"]
#暴露 8383 端口
EXPOSE 8383
- 在文件夹中创建 db 文件夹,里面放置项目用到的 SQL 文件

- 编写 mysql-dockerfile:
FROM mysql:5.7
MAINTAINER lijiaxu
#docker-entrypoint-initdb.d/ 目录下所有 .sh .sql .sql.gz 文件将在数据库初始化时被执行或导入
#这意味着community-linux.sql 中的 SQL 命令将在数据库容器首次启动时被执行,从而初始化数据库
ADD ./db/community-linux.sql /docker-entrypoint-initdb.d/
- 编写 nginx.conf 文件:
worker_processes 1;
events{
worker_connections 1024;
}
http{
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server{
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html last;
index index.html;
}
location /prod-api/ {
proxy_pass http://服务器地址:8383/;
}
}
}
- 编写 docker-compose.yml 文件:
version: '3.0'
services:
mysql:
image: mysql:5.7
container_name: mysql
build:
context: ./
dockerfile: mysql-dockerfile
restart: always
command: --default-authentication-plugin=mysql_native_password #解决外部无法访问问题
ports:
- "3308:3306"
environment:
MYSQL_ROOT_PASSWORD: 'root'
MYSQL_DATABASE: 'community'
MYSQL_PASSWORD: 'root'
networks:
- community
redis:
image: redis:7.0
container_name: redis
restart: always
ports:
- "6379:6379"
networks:
- community
nginx:
container_name: nginx
build:
context: ./
dockerfile: nginx-dockerfile
# restart: always
# volumes:
# - ./nginx.conf:/etc/nginx/nginx.conf
# - ./dist:/usr/share/nginx/html/
ports:
- "83:80"
depends_on:
- my-community
networks:
- community
my-community:
build:
context: ./
dockerfile: Dockerfile
ports:
- "8383:8383"
# volumes:
# - /CommunityFace/upload/face:/app/data/face/
# - /CommunityFace/upload/excel/:/app/data/excel/
depends_on:
- redis
- mysql
restart: always
networks:
- community
networks: #定义服务的桥
community:
driver: bridge
- 运行容器:
docker-compose up #前台运行
docker-compose up -d #后台运行

- 查看容器:

- 如果容器发生错误:
- 如:不显示端口映射,可以查看详细信息
docker-compose logs nginx(容器名)
- 页面测试,访问端口:83
