部署上次的Hapi到Windows+Docker,WindowsDocker
前言:
理论的就不多说了,具体的架构看图。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系统会自动生成虚拟机,我需要容器访问内网,配置如下:

部署上次的Hapi到Windows+Docker,WindowsDocker的更多相关文章
- Windows Docker 部署 Spring Boot 项目
目录 Docker Configuration Config IDEA Plugin Create Spring Boot Project Containerize It Use Dockerfile ...
- Docker:四、Docker进阶 Windows Docker IIS 部署
前面的三篇docker 文档大家看的肯定不过瘾,自己可能也已经上手一试了...不知道有没有发现问题... 哈哈... 我来说说我遇到的问题哦 一.windows docker 镜像越来越大 默认的do ...
- 老司机实战Windows Server Docker:3 单节点Windows Docker服务器简单运维(上)
经过上两篇实战Windows Server Docker系列文章,大家对安装Windows Docker服务以及如何打包现有IIS应用为docker镜像已经有了基本认识.接下来我们来简单讲讲一些最基本 ...
- 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)
上篇中,我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理,编译和部署镜像,并且设置容器的自动启动.但是,还有一些重要的问题没有解决,这些问题不解决,就完 ...
- 第一篇 Windows docker 概述
本人行业属于智能制造,偏向工厂应用,客户端程序全部是.Net 的 WinForm:本系统的后台是.Net,多系统交互的有java的:因系统发布效率问题,想采用docker Windows 的生产力环境 ...
- 解决 Windows Docker 安装 Gitlab Volume 权限问题
本文首发于我的个人博客,解决 Windows Docker 安装 Gitlab Volume 权限问题 ,欢迎访问! 记录一下 Windows10 下 Docker 安装 Gitlab 的步骤. Ca ...
- [第四篇]——Windows Docker 安装之Spring Cloud直播商城 b2b2c电子商务技术总结
Windows Docker 安装 Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境. Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境, ...
- 部署前后端为独立的 Docker 节点
在『服务器部署 Vue 和 Django 项目的全记录』一文中,介绍了在服务器中使用 Nginx 部署前后端项目的过程.然而,当 Web 应用流量增多时,需要考虑负载均衡.流量分发.容灾等情况,原生的 ...
- 【docker】docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志
如题: docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志 场景再现: docker部署并启动 ...
随机推荐
- 自己开发的 vue 滑动按钮组件 vue-better-slider
写在前面的 这个人第一次尝试开发并发布一个 vue 的组件,该组件实现了类似 ios 手机淘宝客户端 -> 消息界面中消息的滑动删除功能等,如下为该组件的文档. 一个 Vue 的滑动按钮组件,有 ...
- Konckout第五个实例:各种事件绑定
点击加一: <!doctype html> <html > <head> <meta http-equiv="Content-Type" ...
- Catch That Cow_bfs
Catch That Cow 题目大意:FrammerJohn找奶牛,给出n和k.FJ在n处.每次他可以向左移动一格.向右移动一格或者移动到自己当前格子数乘2的地方.求FJ最少移动多少次.其中,FJ和 ...
- 深入理解Java对象的创建过程:类的初始化与实例化
摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类 ...
- Oracle 琐表和查询谁在琐表并解决
Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容. (1)锁表查询的代码有以下的形式: select coun ...
- python读取txt、csv、xml
读取txt,无需引入任何包: user_file = open('user_info.txt','r') lines = user_file.readlines() user_file.close() ...
- struct2_拦截器知识点.
Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个 ...
- 【Nginx系列】Nginx虚拟主机的配置核日志管理
Nginx配置段 #user nobody; worker_processes 1;// 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数 #error_lo ...
- Beta第六天
听说
- Alpha第八天
Alpha第八天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...