下载好Docker安装包Install Docker Desktop on Windows | Docker Docs
配置页面:
连接上下载镜像,Docker Engine里内容替换成下面的内容:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "dns": [ "223.5.5.5", "8.8.8.8" ], "experimental": false, "registry-mirrors": [ "https://docker.1ms.run", "https://dockerproxy.com", "https://mirror.baidubce.com" ] }点击apply之后,进入项目存放文件夹,确保在项目含有前端文件夹的目录,如图我的是这样:
进入这个dist所在目录,其dist下一级目录里面存放了css、fonts、img等文件夹,如图2;在这个目录下创建Dockerfile的文本,文本名字必须是Dockerfile,保存后再把后缀txt删除。
这个是dist目录进入之后的样子:
双击打开Dockerfile编辑:(这里打包的是前端的程序,后端打包步骤是一样的,只是选择的镜像文件不一样)
FROM nginx COPY ./dist /usr/share/nginx/htmlFROM和COPY必须大写,避免有警告;./dist因为我的程序代码主要在dist下面,/usr/share/nginx/html是nginx默认的文件夹,这里项目打包能成功运行要依靠nginx。
上面完成之后,在windows中打开cmd(管理员方式运行)输入进入项目存放的地址,我放在d盘下面:输入
docker build -t hospital-images .hospital-images是我的程序打包成镜像我自己取的名字,‘·’表示在这个项目目录当前构建镜像
进入主机windows下打开cmd,不进入任何目录:输入
docker run -d --name hospital-container -p 80:80 hospital-images构建这个项目容器,hospital-container是我自己创建的容器命名 -d表示后台运行 -p是选择运行端口,80被占用就表示:-p 81:80就好,反正换着来。
完成后在docker中可以看见打包好的程序容器
按照上面的步骤打包后端,打包数据库成数据卷,保证数据持久化:
先创建数据卷存放数据库:
docker volume create hospital-mysql将数据卷导成容器部署:
docker volume create hospital-mysql docker run --name hospital-mysql -v hospital-mysql:/var/lib/mysql -v "D:\虚拟机环境-测试课\hospital\hospital_manager.sql:/docker-entrypoint-initdb.d/hospital_manager.sql:ro"#这个数据库在本地环境中 -e MYSQL_ROOT_PASSWORD=123456#数据库库密码 -e MYSQL_DATABASE=hospital_manager#数据库名 -e MYSQL_USER=test -e MYSQL_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci同时运行前后端的容器还有数据库的容器。在网页输入http://127.0.0.1:81就可以看见我们打包好程序的页面展示了:并且查询docker ps也可以看见这个容器在运行。