Docker常見命令---簡易教程
容器相關操作
- docker create # 建立一個容器但是不啟動它
- docker run # 建立並啟動一個容器
- docker stop # 停止容器執行,傳送訊號SIGTERM
- docker start # 啟動一個停止狀態的容器
- docker restart # 重啟一個容器
- docker rm # 刪除一個容器
- docker kill # 傳送訊號給容器,預設SIGKILL
- docker attach # 連線(進入)到一個正在執行的容器
- docker wait # 阻塞到一個容器,直到容器停止執行
獲取容器相關資訊
- docker ps # 顯示狀態為執行(Up)的容器
- docker ps -a # 顯示所有容器,包括執行中(Up)的和退出的(Exited)
- docker inspect # 深入容器內部獲取容器所有資訊
- docker logs # 檢視容器的日誌(stdout/stderr)
- docker events # 得到docker伺服器的實時的事件
- docker port # 顯示容器的埠對映
- docker top # 顯示容器的程式資訊
- docker diff # 顯示容器檔案系統的前後變化
匯出容器
- docker cp # 從容器裡向外拷貝檔案或目錄
- docker export # 將容器整個檔案系統匯出為一個tar包,不帶layers、tag等資訊
執行
- docker exec # 在容器裡執行一個命令,可以執行bash進入互動式
映象操作
- docker images # 顯示本地所有的映象列表
- docker import # 從一個tar包建立一個映象,往往和export結合使用
- docker build # 使用Dockerfile建立映象(推薦)
- docker commit # 從容器建立映象
- docker rmi # 刪除一個映象
- docker load # 從一個tar包建立一個映象,和save配合使用
- docker save # 將一個映象儲存為一個tar包,帶layers和tag資訊
- docker history # 顯示生成一個映象的歷史命令
- docker tag # 為映象起一個別名
映象倉庫(registry)操作
- docker login # 登入到一個registry
- docker search # 從registry倉庫搜尋映象
- docker pull # 從倉庫下載映象到本地
- docker push # 將一個映象push到registry倉庫中
獲取Container IP地址(Container狀態必須是Up)
docker inspect id | grep IPAddress | cut -d '"' -f 4
獲取埠對映
docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' id
獲取環境變數
docker exec container_id env
殺掉所有正在執行的容器
docker kill $(docker ps -q)
刪除老的(一週前建立)容器
docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs docker rm
刪除已經停止的容器
docker rm `docker ps -a -q`
刪除所有映象,小心
docker rmi $(docker images -q)
Dockerfile
Dockerfile是docker構建映象的基礎,也是docker區別於其他容器的重要特徵,正是有了Dockerfile,docker的自動化和可移植性才成為可能。
不論是開發還是運維,學會編寫Dockerfile幾乎是必備的,這有助於你理解整個容器的執行。
FROM , 從一個基礎映象構建新的映象
FROM ubuntu
MAINTAINER , 維護者資訊
MAINTAINER William
ENV , 設定環境變數
ENV TEST 1
RUN , 非互動式執行shell命令
RUN apt-get -y update
RUN apt-get -y install nginx
ADD , 將外部檔案拷貝到映象裡,src可以為url
ADD http://nicescale.com/ /data/nicescale.tgz
WORKDIR /path/to/workdir, 設定工作目錄
WORKDIR /var/www
USER , 設定使用者ID
USER nginx
VULUME <#dir>, 設定volume
VOLUME [‘/data’]
EXPOSE , 暴露哪些埠
EXPOSE 80 443
ENTRYPOINT [‘executable’, ‘param1’,’param2’]執行命令
ENTRYPOINT ["/usr/sbin/nginx"]
CMD [“param1”,”param2”]
CMD ["start"]
docker建立、啟動container時執行的命令,如果設定了ENTRYPOINT,則CMD將作為引數
Dockerfile最佳實踐
- 儘量將一些常用不變的指令放到前面
- CMD和ENTRYPOINT儘量使用json陣列方式
通過Dockerfile構建image
docker build csphere/nginx:1.7 .
映象倉庫Registry
映象從Dockerfile build生成後,需要將映象推送(push)到映象倉庫。企業內部都需要構建一個私有docker registry,這個registry可以看作二進位制的scm,CI/CD也需要圍繞registry進行。
部署registry
mkdir /registry
docker run -p 80:5000 -e STORAGE_PATH=/registry -v /registry:/registry registry:2.0
推送映象儲存到倉庫
假設192.168.1.2是registry倉庫的地址:
docker tag csphere/nginx:1.7 192.168.1.2/csphere/nginx:1.7
docker push 192.168.1.2/csphere/nginx:1.7
幾個簡單小例子
容器操作
- 建立並拉取busybox
docker pull busybox:latest
2.建立測試容器
docker run -d --name con03 csphere/test:0.1
efc9bda4a2ff2f479b18e0fc4698e42c47c9583a24c93f5ce6b28a828a172709
3.登陸到con03中
# docker exec -it con03 /bin/bash
[root@efc9bda4a2ff /]# exit
4.停止con03
# docker stop con03
con03
5.開啟con03
# docker start con03
con03
docker退出命令:如果要正常退出不關閉容器,請按Ctrl+P+Q進行退出容器
本文出自 “黃怡善的運維部落格” 部落格,轉載請註明出處http://linuxpython.blog.51cto.com/10015972/1682219
本文連結:Docker常見命令---簡易教程
有容雲-構築企業容器雲 www.youruncloud.com
相關文章
- Docker常見命令Docker
- Docker簡易安裝教程Docker
- 技能篇:docker的簡易教程Docker
- COLMAP簡易教程(命令列模式)命令列模式
- Docker簡易版教程——通俗易懂Docker
- Git簡易的命令列入門教程:Git命令列
- Emacs基礎使用教程及常見命令整理Mac
- docker常見配置Docker
- 常見dos命令
- 常見Linux命令Linux
- nginx常見命令Nginx
- 常見命令-history
- 常見命令--SCP
- linux常見命令Linux
- Linux命令常見面試題!Linux基礎教程Linux面試題
- Docker常見面試題及答案!Linux入門教程Docker面試題Linux
- adb常見操作命令
- 【3】Linux常見命令Linux
- 常見的DOS命令
- AOSP常見的命令
- 常見的linux命令Linux
- syncthing 簡易教程
- flutter簡易教程Flutter
- Solidity 簡易教程Solid
- Docker常見面試題Docker面試題
- 網易iTownSDK常見問題
- 常見d部分dos命令
- nslookup命令的常見用法
- Git SSH 命令常見用法Git
- Linux 下 常見操作命令Linux
- useradd 命令的常見用法
- linux常見命令說明Linux
- 簡明 docker 教程Docker
- docker命令簡單使用Docker
- Linux常見命令-目錄檔案命令Linux
- U-boot常見命令使用boot
- LINUX 網路管理常見命令Linux
- 日誌分析(1)常見命令