最近有個朋友在寫乙個新的專案, 想用docker搭建一套測試服務, 問我有沒有什麼坑需要注意的…其實挺簡單的, 也沒啥坑, 注意一下時區問題和docker配置就好了
搭建私有倉庫
docker pull registry
docker run -d -v /data/registry:/var/lib/registry -p 5000:5000 映象id
這樣啟動確認沒問題就可以了, 然後就是配置的事, docker在1.3之後互動預設使用https, 比如你的機器ip是127.0.0.1, 那麼你需要在客戶端的docker配置裡面信任這個私有倉庫的位址, 配置檔案位址linux是/etc/docker/daemon.json, 加上
mac和windows就直接開啟配置改就行了
這樣私有映象服務就搭好了
製作自己的服務映象
服務端用的是golang, 包管理是go mod, 然後直接找官方發布的映象就可以了, 下面都有官方打包例項
然後需要注意一下時區問題, 這個我之前發過博文, 時區不同可能會存在差8小時的問題, 下面給乙個簡單例項
dockerfile
# 設定基礎映象
from golang:1.12.6-alpine
# 作者描述資訊
label maintainer="飛啊飛"
# 使用國內源
run echo -e > /etc/apk/repositories
# copy當前目錄的檔案到映象裡面的工作目錄目錄下
copy ./config/test.json /demo/ // 配置檔案
copy server /demo/ // 打包的linux二進位制檔案
#設定東八區,北京時間
env tz=asia/shanghai
run apk add --no-cache tzdata && ln -sf /usr/share/zoneinfo/$tz /etc/localtime && echo $tz > /etc/timezone
# 指定路徑
workdir /demo/
# 執行命令 這裡給檔案增加執行許可權
run ["chmod", "+x", "/demo/server"]
# 容器入口, 執行命令
cmd ["./server", "-config", "test.json"]
打包命令
像這種能偷懶的事當然是寫個指令碼啦
mac和linux的話就寫個shell指令碼
#!/usr/bin/env bash
version=v1.0.1
servicename="127.0.0.1:5000/server"
// go打包成linux可執行檔案
cgo_enabled=0 goos=linux goarch=amd64 go build -o server
// 製作映象(千萬別忽略最後的乙個點)
docker build -t $:$ .
// 提交到私有倉庫
docker push $:$
window的就bat檔案
@echo off
chcp 65001
set version=1.0.1
set servicename="127.0.0.1:5000/server"
set goarch=amd64
set goos=linux
go build -o server
docker build -t %servicename%:v%version% .
docker push %servicename%:v%version%
伺服器部署
一樣的shell指令碼
#!/usr/bin/env bash
servicename="127.0.0.1:5000/server"
echo "刪除當前執行容器"
docker rm -f demo_server
echo "刪除當前映象"
docker rmi $(docker images | grep "$" | awk '')
echo "拉取映象版本 $1"
docker pull $:v$1
echo "啟動新版本容器"
docker run -d -p "8888:8888" --name=demo_server $:v$1
echo "啟動完成"
這樣就ok了, 大功告成
檢視日誌
docker logs -f --tail=20 demo_server
這個只是搭個簡單的測試服務, 生產環境的話還是建議用阿里雲的映象服務, 比較方便管理和服務部署監 docker搭建私有倉庫
registry映象 docker pull registry 二 通過該映象啟動乙個容器 docker run d p 5000 5000 v opt data registry tmp registry registry 注 預設情況下,會將倉庫存放於容器內的 tmp registry目錄下,這...
Docker搭建私有倉庫
docker私有倉庫 1 私有倉庫搭建與配置 1 拉取私有倉庫映象 此步省略 docker pull registry 2 啟動私有倉庫容器 docker run di name registry p 5000 5000 registry 3 開啟瀏覽器 輸入位址看到 表示私有倉庫搭建成功並且內容為...
docker搭建私有倉庫
先吧私有倉庫down下來,這需要一點時間,剛好這中間的時間,我們可以準備一下其他的東西 docker pull registry 緊接著,registry需要https執行環境,所以來生成我們自己的證書 簡單說明一下,目前的registry版本是2,之前的1是支援非ssl的,docker在0.9以下...