当前位置:首页 > Windows程序 > 正文

需要注意的如下: 容器用了--Link

2024-03-31 Windows程序

理论的就不久不多说了,具体的架构看图。web这里是上篇文章开发的Hapi处事,数据库Mysql,空话不久不多说,大略的画了下,架构图如下:

技术分享图片

Mysql镜像拉取,配置

数据库镜像查找

docker search mysql

  不久不多解释,这里我直接拉取Mysql镜像,,并且把端口映射到宿主机8087,数据库默认暗码设置123456    -d mysql 为刚刚上面盘问到的镜像NAME,此时镜像和容器都已经创建

docker run --name test-mysql -p 8087:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

  检察Images,和容器,test-mysql 已经运行在容器上

docker images
docker ps

  进入Mysql的运行环境

docker exec -it test-mysql /bin/bash mysql -uroot -p123456

  第一句执行告成会root权限进入容器的环境

     

  上面语句我分为了二段,可以直接合并使用。

   测试下连接,输入如下:

  

show databases;

  

技术分享图片

  此时用宿主机的数据库打点工具,提示如下

技术分享图片

  OK,正常连接,有的可能会连接掉败,解决要领如下:

  对数据库授权

GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY root WITH GRANT OPTION;

  特殊情况可能还是无法使用,这时候测验考试改一下暗码,再连接,OK! 这只是我遇到的情况。

update user set authentication_string = password(root) where user = root;

  连接告成,说明docker中的mysql已经可以在局域网中访谒了。

打包项目文件,生成镜像,绑定数据库

  打开项目文件主目录,新建 Dockerfile,内容输入如下

#Dockerfile文件 FROM docker.io/node //node版本这里不指定了,默认最新版 WORKDIR /home/Service //指定事情目录为容器中的/home...下 # Bundle app source COPY . /home/Service RUN npm install EXPOSE 8888 //开放8888端口 CMD [ "npm", "start" ]

  注意运行措施中,如node的项目,我们需要配置一样的端口,还需要配置站点地点,如下:

  配置完毕,打包镜像 .不能少,代表当前路径

docker build -t test-hapi .

  

  运行镜像,与数据库容器成立连接

docker run --name my-hapi --link test-mysql:test-mysql -p 8088:8888 -d test-hapi

  进入容器日志检察运行情况

docker logs eb01307bc408 //容器id docker ps 检察

技术分享图片

技术分享图片

  完美。

  OK,搭建就这么完成了。需要注意的如下:

  容器用了--Link,那么web应用的配置文件数据库连接,应该改成刚刚link 的名字,并且不能带端口,如下

技术分享图片

  为什么用localhost,因为你把容器的地点映射到了宿主机,并且映射端口到了宿主机的8088 ,实际请求就被转回了容器地点,也就是 8888。

  node项目可能有点特殊,还需要配置为容器的IP:

  

  网络方面,用windows系统会自动生成虚拟机,我需要容器访谒内网,配置如下:

  

技术分享图片

部署上次的Hapi到Windows+Docker,WindowsDocker

标签:

原文地点:https://www.cnblogs.com/wzgj/p/8881627.html

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/33608.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494586访问次数
  • 3278建站天数
  • 友情链接