端口更改d
1.前端VUE global.js
2.后台 java
准备工作:在服务器建立项目对应的文件夹 Cet 文件结果如下
web:前端 server:后端 数据脚本:cetdemo.sql
一、部署数据库 mysql
(1)创建Mysql镜像和容器
docker pull mysql:5.7
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Cet123456 -d mysql:5.7
检查:
查看镜像命令 docker images
查看容器命令 docker ps
(2)导入数据脚本
2.1 将sql数据脚本拷贝到服务器上,直接用拷贝即可
2.2 将数据脚本从服务器复制到容器中 docker cp命令
1.docker cp sql文件地址 容器名/ID:复制地址
docker cp /root/Cet/cetdemo.sql 26007ec0e6e2:/tmp
2.进入容器:docker exec -it 容器id bash
docker exec -it 26007ec0e6e2 ba
3.进入tmp 文件,查看是否复制成功 cd tmp ls
4.进入数据库,导入数据
mysql -u root -p
password
use database_name;
source /tmp/cetdemo.sql;
show tables;
5.Ctrl+D 退出容器
二、前端VUE 部署
1.删除之前的容器和镜像 先删除容器再删除镜像
先列出有哪些容器(列出所有的):docker ps -a
显示所有容器:docker ps -a
只显示容器ID:docker ps -q
要先暂停容器,才能删除:
暂停所有容器:docker stop $(docker ps -aq)
暂停单个容器:docker stop < CONTAINER ID >
删除容器:
删除所有容器:docker rm $(docker ps -aq)
删除单个容器:docker rm < CONTAINER ID >
强制删除 -f, --force:docker rm -f < CONTAINER ID >
删除指定链接-l, --link:docker rm -l < CONTAINER ID >
删除容器关联数据卷-v --volumes:docker rm -v < CONTAINER ID >
删除镜像
列出镜像:docker images
删除镜像:
删除单个镜像:docker rmi < IMAGE ID >
删除所有镜像:docker rmi $(docker images -q)
遇见关联镜像删除不了时,强制删除:docker rmi -f $(docker images -q)
2. npm run build 复制项目dist文件夹 到web文件夹下
建立Dockerfile 和nginx.conf 文件
Dockerfile
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
client_max_body_size 20m;
server {
listen 8088;
server_name www.aaaaaa.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
}
2.创建镜像
需要切换到对应文件夹下,在web文件夹下建立
docker build -t cetwebrep . 镜像名:cetwebrep
3.创建容器和启动
docker run --name=cetwebcon -d -p 80:8088 cetwebrep cetwebcon 容器名 8089(服务器映射端口):8088(项目本地运行端口) cetwebrep 镜像名
三、后端部署
1.maven 打包 jar 并且将Jar包 放到server文件夹下
新建Dockerfile文件
FROM java:8
ADD cet-0.0.1-SNAPSHOT.jar cet.jar
RUN bash -c 'touch /cet.jar'
ENTRYPOINT ["java","-jar","/cet.jar"]
目录架构:
2.创建镜像
docker build -t cetserverrep .
3.创建并且启动容器
docker run--net=host --name=cetservercon -d -p 8086:8081 cetserverrep 8086(服务器映射端口):8081(项目本地运行端口)
必须加 ---net=host 否则数据无法连接!!!!!
四、乱码问题 ---- 将数据库的编码方式改为utf8
alter database cetdemo character set utf8;
网友评论