# Docker 常用指令 ###### tags: `常用指令` `docker` ## 基本指令 * 列出 containers 所佔空間 ``` docker ps --size ``` * 列出 docker 所佔空間 ``` docker system df ``` * 列出 containers ``` # 列出所有 containers docker ps -a # 列出正在運行的 containers docker ps ``` * 暫停運行 container ``` docker stop <container name> ``` * 重新啟動 container ``` docker start <container name> ``` * 刪除 container ``` docker rm <container name> ``` * 列出所有映象檔 ``` docker images ``` * 刪除映象檔 ``` docker rmi <image name> ``` * 建立 container ``` docker run -d <image name> # 自訂 container name docker run -d --name <container name> <image name> # 指定主機端 port 對應 container port docker run -d -p <host port>:<container port> <image name> # 建立主機端與 container 之間檔案同步的路徑 (Volume) docker run -d -v <host volume path>:<container volume path> <image name> ``` * 進入 container shell ``` docker exec -it <container name> bash ``` * 將 container 做成映象檔 ``` docker commit -a "<author info>" -m "<any message>" <container name> <image name>:<tag name> ``` * 上傳至 Docker hub ``` # 1.登入 Docker hub docker login # 2. tag name docker tag <image name> <Docker hub user name>/<image name> # 3. 上傳 docker push <Docker hub user name>/<image name> ``` * 下載映象檔 ``` docker pull <image name> # 指定版本 docker pull <image name>:<tag name> # 指定作者 docker pull <Docker hub user name>/<image name> ``` * 將映象檔存成壓縮檔 ``` # tar檔 docker save <image name> > <file name>.tar # tar.gz檔 docker save <image name> | gzip > <file name>.tar.gz ``` * 將壓縮檔轉成映象檔 ``` docker load -i <file name>.tar.gz ``` ## 變更 docker 預設路徑 #### 發現主機放置 docker 的空間不足,需變更預設儲存路徑 ``` # 1.停止 docker sudo service docker stop # 2.編輯文件 sudo vim /etc/docker/daemon.json # 3.在文件中加入 { "data-root":"<your new path>/docker" } # 4.複製原有檔案至新路徑 sudo rsync -aP /var/lib/docker/ <your new path>/docker # 5.變更原有案名稱作為備份 sudo mv /var/lib/docker /var/lib/docker.old # 6.重啟 docker sudo service docker start ``` ## 以 Dockerfile 建立映象檔 #### 除了下載 Docker hub 上的映象檔,也可自己製作 ``` # 建立 Dockerfile vim Dockerfile ``` #### Dockerfile 內容 ``` FROM <image name> RUN <command...> # 範例 # 以 Ubuntu 為作業系統,安裝 vim, nginx, git FROM ubuntu RUN apt-get update -qq && apt-get -y --no-install-recommmends install \ vim \ nginx \ git-all ``` ##### 建立映象檔 ``` ddocker build -t <>image name <>Dcockerfile path --noache # 範例 # 建立映象檔 docker build -t ubuntu_vim_nginx_git . --no-cache # 以此映象檔建立 container docker run -d -it --name test_server ubuntu_vim_nginx_git # 進入 container docker exec -it test_server bash # 可測試 vim, nginx, git 是否安裝成功 ``` ## 運用 docker-compose 佈署 container #### 以往我們建立 container 需要將參數寫入在 docker run 裡,但有時參數過多會導致指令冗長,我們可以撰寫 docker-compose.yml,事先把參數寫在裡面,再透過 docker-compose 幫我們依據寫好的參數來建立 container #### 如果我們有一個 docker run ``` docker run -d -p <host port>:<container port> -v <host volume path>:<container volume path> --name <container name> <image name> ``` #### 其效果等同於以下 docker-compose.yml 內容 ``` # 重視縮排 services: <server name>: image: <image name> ports: - "<host port>:<container port>" volumes: - <host volume path>:<container volume path> container_name: <container name> ``` #### 在 docker-compose.yml 所在路徑執行以下指令即可建立 container ``` docker-compose up -d ``` #### docker-compose 還有以下優點 1. 可同時建立多個 container 2. host volume path 可使用相對路徑 3. 也可用於建立映象檔(by Dockerfile)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.