Skip to main content

Tedshd's Dev note

Category: Docker

docker 建立不同平台的 image

# 前言 現在在開發與線上環境常常會遇到不同 CPU 架構的問題 不同 CPU 架構底層的指令集也不一樣 最常見的影響就是在其中一個平台編譯出來的程式會無法在另一個平台執行 這情況尤其是會在接近底層的程式上見到 現在普遍來說會發現在 ARM 架構底下有些程式執行起來效率更高 所以有部分公司的服務也會在線上環境的機器選用 ARM 架構的機器 # 情境 雖然以前公司的情況是開發在 x86-64 上 線上是 ARM 的情況 但現在自己在試驗的情況是反過來的 XD 現在 Macbook 是 M1 晶片了, M 系列是 ARM 架構 我在 GCP 開的機器是 x86-64 架構 所以在 Mac 上面 build 的 docker image 是沒法在 GCP 開的機器運行 只要執行 docker run 就會出現錯誤提示說架構不同無法執行 # 解決方案 docker 有提供可以建構不同平台的 image 的指令 只要多一個 buildx 和 --platform 的指令與參數 docker buildx build --platform=linux/amd64,linux/arm64 . ...

Mac M1 run MySQL in local docker

# Usage docker hub In Apple M1 no-official image amd64/mysql MySQL 5.7 docker pull amd64/mysql:5.7 # Run docker in local Sample for M1(different of image name) docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d amd64/mysql:latest Container run in 0.0.0.0 mysql --default-character-set=utf8mb4 -u root -h 0.0.0.0 -P 3306 -p -A ...

docker 使用紀錄

# docker images 列出所有拉下來的 docker image docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 07f8e8c5e660 3 weeks ago 188.3 MB # build dockerfile 使用 dockerfile 建立 docker image 直接建立 docker build . 預設會找當前的目錄的 Dockerfile -t 可以設定建立的 image & tag name docker build . -t image_name:tag_name -f 指定用哪個 dockerfile 建立 docker build . -t ubuntu_dev:16.04 -f local.Dockerfile # dockerfile 使用 ## 使用 nginx official image 建立 FROM nginx:1. ...

Docker - Mac research log

# Docker - Mac research log Install by Mac ## Register Docker Hub Docker Hub ## Use Kitematic kitematic ## Install Ubuntu Search ubuntu on docker hub Run command docker pull ubuntu ### Use docker images docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 07f8e8c5e660 3 weeks ago 188.3 MB ### build dockerfile docker build . -t ubuntu_dev:16.04 -f local.Dockerfile ### run container docker run -t -i ubuntu /bin/bash ...