1.前端(nginx)
root@localhost \~\]# docker pull nginx //拉取nginx镜像 \[root@localhost \~\]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 5ef79149e0ec 2 weeks ago 188MB \[root@localhost \~\]# docker run -itd -p80:80 nginx:latest //创建nginx容器在后台运行 \[root@localhost \~\]# docker exec d18c ls /usr/share/nginx/html 50x.html index.html \[root@localhost \~\]# mkdir project_exam_system \[root@localhost \~\]# cd project_exam_system/ \[root@localhost project_exam_system\]# mkdir web \[root@localhost web\]# ls //上传自己的前端项目 dist \[root@localhost web\]# docker run -itd -p80:80 -v /root/project_exam_system/web/dist/:/usr/share/nginx/html nginx:latest 3035a713b57eaef83c979c7a4e04416d309cc52a3e5b61933bd3e058d951152b 浏览器访问本机ip 做个hosts域名劫持,就暂时不做dns了 windows系统在这个目录下:"C:\\Windows\\System32\\drivers\\etc\\hosts" 添加下面这一行内容 192.168.1.80 bu.yuanyu.zhangmin ## 2.部署后端业务jdk 上传项目的其他部分以及jdk17 \[root@localhost \~\]# ls anaconda-ks.cfg harbor-offline-installer-v2.11.1.tgz project_exam_system.sql application.properties jdk-17_linux-x64_bin.tar.gz Project_ExamSystem-V1.0.0.war docker.sh project_exam_system \[root@localhost \~\]# docker pull centos //拉取 \[root@localhost \~\]# docker run -itd centos:latest //创建容器 aa6a96f74ed438bfe561bd9b7aed494a46bb2a189edff44573171dd2215a6738 \[root@localhost \~\]# docker cp jdk-17_linux-x64_bin.tar.gz aa6a:/ //把准备好的jdk17包传进容器中 Successfully copied 183MB to aa6a:/ \[root@localhost \~\]# docker cp application.properties aa6a:/ //把项目的其他部分上传到该容器中 Successfully copied 4.1kB to aa6a:/ \[root@localhost \~\]# docker cp Project_ExamSystem-V1.0.0.war aa6a:/ Successfully copied 41MB to aa6a:/ \[root@localhost \~\]# docker attach aa6a \[root@aa6a96f74ed4 /\]# ls Project_ExamSystem-V1.0.0.war dev jdk-17_linux-x64_bin.tar.gz lost+found opt run sys var application.properties etc lib media proc sbin tmp bin home lib64 mnt root srv usr \[root@aa6a96f74ed4 /\]# mkdir /usr/local/jdk \[root@aa6a96f74ed4 /\]# tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/jdk/ --strip-components=1 \[root@aa6a96f74ed4 /\]# ls /usr/local/jdk LICENSE README bin conf include jmods legal lib man release \[root@aa6a96f74ed4 /\]# vi application.properties //修改application.properties文件 \[root@aa6a96f74ed4 /\]# /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war //启动服务 ctrl+p+q退出 \[root@localhost \~\]# curl 172.17.0.3:8080 //访问 {"code":20002,"msg":"账号不存在或密码错误"}\[root@localhost \~\]# //这样代表部署成功 \[root@localhost \~\]# docker commit aa6a java:v0 //使用docker commit将容器做成镜像,至于为什么不用export和import,Docker续2中有写 sha256:46529fd5a4b2cf6affb2cd559987423a29f533c2e6d42bd3f3739dc641ac7cfa \[root@localhost \~\]# docker images //查看 REPOSITORY TAG IMAGE ID CREATED SIZE java v0 46529fd5a4b2 44 seconds ago 774MB nginx latest 5ef79149e0ec 2 weeks ago 188MB centos latest 5d0da3dc9764 2 years ago 231MB \[root@localhost \~\]# docker stop aa6a //停止刚才创建的容器 aa6a \[root@localhost \~\]# docker rm aa6a //删除 aa6a \[root@localhost \~\]# docker run -itd -p8080:8080 java:v0 /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war //使用刚刚创建的镜像创建容器映射端口并启动项目 \[root@localhost \~\]# docker ps --all //这里看到启动成功了 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a425c7feff30 java:v0 "/usr/local/jdk/bin/..." 27 seconds ago Up 25 seconds 0.0.0.0:8080-\>8080/tcp, :::8080-\>8080/tcp upbeat_lamarr 3035a713b57e nginx:latest "/docker-entrypoint...." About an hour ago Up About an hour 0.0.0.0:80-\>80/tcp, :::80-\>80/tcp compassionate_mayer \[root@localhost \~\]# curl 192.168.1.80:8080 {"code":20002,"msg":"账号不存在或密码错误"}\[root@localhost \~\]# 本机浏览器访问:192.168.1. ## 3.mysql \[root@localhost \~\]# docker pull mysql:5.7.44 \[root@localhost \~\]# docker run -itd -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7.44 \[root@localhost \~\]# docker cp project_exam_system.sql 9d2e:/ //上传sql文件 Successfully copied 11MB to 9d2e:/ \[root@localhost \~\]# docker exec -it 9d mysql -uroot -proot exit \[root@localhost \~\]# docker exec -it 9d /bin/bash bash-4.2# ls bin docker-entrypoint-initdb.d home media proc run sys var boot entrypoint.sh lib mnt project_exam_system.sql sbin tmp dev etc lib64 opt root srv usr bash-4.2# mysql -uroot -proot \< project_exam_system.sql bash-4.2# mysql -uroot -proot mysql\> show databases; +---------------------+ \| Database \| +---------------------+ \| information_schema \| \| mysql \| \| performance_schema \| \| project_exam_system \| \| sys \| +---------------------+ 5 rows in set (0.00 sec) mysql\> use project_exam_system Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql\> create user 'gaof'@'%' identified by 'gaof'; Query OK, 0 rows affected (0.00 sec) mysql\> grant all on gaof.\* to 'gaof'@'%'; Query OK, 0 rows affected (0.00 sec) mysql\> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql\> exit Bye bash-4.2# read escape sequence \[root@localhost \~\]# docker cp b2:/var/lib/mysql project_exam_system/mysql/