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

來源:互聯網
上載者:User

標籤:use   work   bubuko   docker   bin   就是   npm   分享   新版   

前言:

理論的就不多說了,具體的架構看圖。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/bashmysql -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 sourceCOPY . /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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.