前言:

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

Mysql镜像拉取,配置

数据库镜像查找

docker search mysql

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

docker run --name test-mysql -p :  -e MYSQL_ROOT_PASSWORD= -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 : -d test-hapi

  进入容器日志查看运行情况

docker logs eb01307bc408 //容器id docker ps 查看

  完美。

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

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

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

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

  

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

  

最新文章

  1. cookie——小甜品
  2. php数组操作集锦- 掌握了数组操作, 也就掌握了php
  3. webpack react基础配置一
  4. javascript编程: JSON, Mapping, 回调
  5. 一个简单的数据查询显示jsp
  6. 深入理解Linux字符设备驱动
  7. ASP.NET MVC 5 入门教程 (3) 路由route
  8. Manacher 算法(hdu 3068 && hdu 3294)
  9. JDE报表开发笔记(R5537011 收货校验统计表)
  10. hdu2085
  11. 【风马一族_xml】Schema--- xml的约束技术
  12. Oracle预估的基数算法
  13. Python3.2官方文件翻译-工具列表和十进制浮点计算
  14. C#Dictionary集合的使用
  15. ScriptEngine执行复杂js报数组越界
  16. FastDFS特性及问题思考
  17. HTML-入门篇day01
  18. 使用pandas导入csv文件到MySQL
  19. Android File Transfer
  20. python包/模块路径

热门文章

  1. Oracle查询优化改写--------------------范围处理
  2. 分享两个提高效率的AndroidStudio小技巧
  3. 赛博杯-HMI流水灯-stack
  4. New UWP Community Toolkit - RadialProgressBar
  5. tornado 采用 epoll 代理构建高并发网络模型
  6. logging日志
  7. WingIDE5.*注册破解方法
  8. Mongodb 3 查询优化(语句优化、建索引)
  9. python性能分析--cProfile
  10. javascript递归函数