)
下载好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_PASSWORD123456#数据库库密码 -e MYSQL_DATABASEhospital_manager#数据库名 -e MYSQL_USERtest -e MYSQL_PASSWORD123456 -d mysql:5.7 --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci同时运行前后端的容器还有数据库的容器。在网页输入http://127.0.0.1:81就可以看见我们打包好程序的页面展示了并且查询docker ps也可以看见这个容器在运行。