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"]
#!/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
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
但是會看到 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