Skip to content

Latest commit

 

History

History
executable file
·
146 lines (101 loc) · 2.59 KB

File metadata and controls

executable file
·
146 lines (101 loc) · 2.59 KB

建立自訂 image

Dockerfile

FROM mysql:5.6.51

# image 說明
LABEL maintainer=""
LABEL description="README.md 在 image 裡面"
LABEL usage="使用指令"

# readme 檔
COPY README.md /README.md

# 複製自定義腳本
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh

# 將 Entrypoint 指向我們的新腳本
ENTRYPOINT ["/entrypoint.sh"]

# 保留官方預設指令
CMD ["mysqld"]

entrypoint.sh

#!/bin/bash
set -e

# 取得環境變數,預設為 mysql 官方的 999
USER_ID=${PUID:-999}
GROUP_ID=${PGID:-999}

echo "Custom: Adjusting mysql user to UID:$USER_ID, GID:$GROUP_ID..."

# 1. 修改 mysql 群組 GID
groupmod -g "$GROUP_ID" mysql

# 2. 修改 mysql 使用者 UID
usermod -u "$USER_ID" -g "$GROUP_ID" mysql

# 3. 確保 MySQL 資料目錄權限正確
# 注意:若資料量極大,此步驟啟動會變慢,可視情況移除
#chown -R mysql:mysql /var/lib/mysql

# 4. 呼叫官方原本的 Entrypoint 並傳遞所有參數
exec /usr/local/bin/docker-entrypoint.sh "$@"

建置指令

docker build -t aqr199/mysql:5.6.51 .

指令

# 列出目前本機清單
docker images

# 查看相關訊息, maintainer、description、usage 會出現
docker image inspect aqr199/mysql:5.6.51

# 刪除
docker image rm aqr199/mysql:5.6.51

# 下載
docker image pull mysql:5.6.51
docker pull mysql:5.6.51

建立私人倉庫

!!! 建立符合自身使用的image, 不想對外公開 !!! 保留己經檢查符合安全規範的image

services:
  registry3:
    image: registry:3.0.0
    container_name: registry_main
    network_mode: host #host ip eq 192.168.50.123
    #ports:
    #  - "5000:5000"
    volumes:
      - ./data:/var/lib/registry
    restart: always 

上傳自建image

# 建立image
docker build -t aqr199/mysql:5.6.51 .

# tag 
docker tag aqr199/mysql:5.6.51 192.168.50.123:5000/aqr199/mysql:5.6.51

# 上傳
docker push 192.168.50.37:5000/aqr199/mysql:5.6.51

如何取用image

直接取用

但是會看到 192.168.50.123:5000/aqr199/mysql:5.6.51 很醜

# 下載
docker pull 192.168.50.123:5000/aqr199/mysql:5.6.51
# 用tag改名
docker tag 192.168.50.37:5000/aqr199/mysql:5.6.51 aqr199/mysql:5.6.51

漂亮取用

編輯 /etc/docker/daemon.json, 加上 insecure-registries 重啟 docker

因為會重啟docker, 建議新機建置再使用, 舊機還是直接取用

{
...
  "insecure-registries": ["192.168.50.123:5000"]
...
}

下載

docker pull aqr199/mysql:5.6.51