iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0

當程式完成之後要進行程式的測試,當有相依的服務需要建構,例如MySQL或是redis,
一種方式是直接將這些服務建立在本機,不過這種方式會讓本機建立越來越多服務,
加上之後如果要測試其他服務時,已經有資料的資料庫有時會不方便,
這時就可以使用docker來個別建立所需服務,也可以建立出乾淨的資料庫。

安裝docker

要透過docker建立資料庫之前,當然是要先把docker裝起來,這邊以mac為範例來說明
https://ithelp.ithome.com.tw/upload/images/20201005/201296073pFPkEaldi.png
官網有提供桌面版的下載檔,下載完之後點擊安裝,結束後將docker拖到Applications目錄即可,
接下來可以透過下面指令

docker -v

有正確顯示docker版本,那就是安裝成功了。

建立容器(Container)

在docker內,可以透過官方或自己準備映像檔(image)來建立容器(Container),可以將容器看成一個擁有最底線功能,小型的linux,包含著指定的服務,由於沒有多餘的功能,所以大部分容器檔案大小都不大。
基本上MySQL或redis等常用資料庫,官方都有提供映像檔,所以不用自己準備。
建立容器的方式只需要透過一個指令即可:

docker run --name redis-lab -d redis

沒特別指令版本的話就會使用最新的版本,如果要指令版本則像下面範例這樣:

docker run --name redis-lab -d redis:5.7

這樣建立出來的容器就會是redis 5.7版(如果有的話),方便在特定版本測試。
但是這樣建立出來的容器無法被外部的服務打到,因此必須設定port讓內部的port暴露出來,像下面範例一樣:

docker run --name redis-lab -p 6379:6379 -d redis

這樣就可以將容器內部的port對應到本機的6379 port,就可以將設定檔的redis網址設定為127.0.0.1:6379,
同理,如果6379已經被使用了,也可以設定別的port:

docker run --name redis-lab -p 8080:6379 -d redis

這樣就是將容器的6379開到本機的8080port,透過這種方式就可以將程式需要的服務以docker架起來了。


上一篇
Day26-單元測試
下一篇
Day28-用dokcerfile建立測試image
系列文
從0開始的golang web server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言