Docker私有倉庫搭建 Go服務部署

2021-10-08 01:13:23 字數 2653 閱讀 5208

最近有個朋友在寫乙個新的專案, 想用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以下...