docker常用命令

常用命令可分爲以下幾種

1.容器生命週期管理 # docker [run|start|stop|restart|kill|rm|pause|unpause]
2.容器操作運維  # docker [ps|inspect|top|attach|events|logs|wait|export|port]
3.容器rootfs命令   # docker [commit|cp|diff]
4.鏡像倉庫         # docker [login|pull|push|search]
5.本地鏡像管理     # docker [p_w_picpaths|rmi|tag|build|history|save|import]
6.其它命令         # docker [info|version]

鏡像相關操作命令:

//創建鏡像的方法有三種
//基於已有鏡像的容器創建
//基於本地模板導入
//基於Dockerfile文件創建
commit  基於已有鏡像的容器再生成一個新的鏡像
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-m,--message=""  提交信息,爲鏡像描述內容
-a,--author=""   作者信息
-p,--pause=true  提交時暫停容器運行
My_Container:1  是提交的鏡像名稱和版本
# docker commit -m "Centos7 x64 First Image" -a "Loren" 33d619155d03 My_centos7:1
import 基於本地模板導入容器快照,將一個容器快照文件導入本地
# cat centos.tar | docker import - test/centos:v1.0
build 根據Dockerfile文件創建一個新的鏡像
# docker build [OPTIONS] PATH | URL | -
-t  設定鏡像名稱及其標示號
-f,--file=Dockerfile 指定Dockerfile文件路徑
# docker build -t test:2 -f /opt/
search Image_name  在docker index中搜索p_w_picpath
--automated=false
-s N, --stars=0  指定評價爲N星級以上的鏡像
# docker search centos6
pull Image_name  從docker register server 中下拉p_w_picpath或者repository
# docker pull centos
# docker pull centos:centos6
# docker pull dl.dockerpool.com:5050/centos:6.8  指定網站下載
push  推送一個p_w_picpath或者repository到registry 
上傳之前要把上傳的p_w_picpath的tag修改爲 hup用戶名/鏡像名字:tag 
如 # docker tag centos6.8:v1 644597521/centos6.8:v1
p_w_picpaths  顯示本地的所有鏡像列表
rmi  刪除指定id的鏡像
tag  修改鏡像名
# docker tag test:1 My_p_w_picpath:v2  修改test標記好爲1的名稱爲My_p_w_picpath標記號爲v2
save 保存鏡像到本地文件
Usage: docker save [OPTIONS] IMAGE [IMAGE...]
-o, --output="" 
# docker save -o centos_6.4.tar centos6.4:v1  # 導出本地的centos6.4:v1鏡像爲centos_6.4.tar文件
load 將本地文件導入到本地鏡像庫
Usage:docker load [OPTIONS]
-i, --input=""
# docker load < centos_6.4.tar  # 將centos_6.4.tar文件導入到本地鏡像列表
inspect  顯示鏡像或容器的信息。返回的是JSON格式信息,若只要其中一項內容,可以使用-f指定

容器常用操作命令:

run   運行一個新的container
# Usage:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a,--attack
-i,--interactive=false   以交互模式運行容器,通常和-t搭配
-t,--tty=false   分配一個僞輸入終端
-d  後臺運行
-P  允許外部訪問容器所有開啓的端口
-p  端口映射  -p 80:80
--name  指定啓動後容器的名字
# docker run -i -t centos
# docker run -i -t -d centos /bin/bash
# docker run -i -t -d --name My_Container centos /bin/bash
# docker run -i -t -d -p 80:80 --name My_Container centos /bin/bash
-v,--volume=[] 創建數據卷
/mnt 在容器中創建一個數據卷
/webapp:/src/webapp     目錄掛載。將本地的webapp目錄掛載到容器的/src/webapp。容器和宿主機的掛載目錄都會同時變化
/test.txt:/tmp/text.txt 文件掛載。將本地的/test.txt文件掛載到容器的/tmp/text.txt(注意,只能修改容器掛載內的文件,否則不同步)
# docker run -ti -v /da --name=dbdata centos 創建一個容器dbdata,並創建一個數據卷掛載容器dbdata的/da目錄
--volume-from 共享掛載數據卷
# docker run -ti -v /mnt --name db centos    創建一個數據卷容器db,並創建一個數據卷掛載到容器db的/mnt目錄下
# docker run -ti --volume-from=db --name db1 centos # db1容器掛載db 容器中的數據卷
# docker run -ti --volume-from=db --name db2 centos # db2容器掛載db 容器中的數據卷
此時三個容器db,db1,db2都可以分享目錄/mnt
--link  連接其他容器
--link NAME:Alias  Name要建立連接的容器名,Alias連接的容器的別名
# docker run -ti -d -P --name web --link lamp:lamp centos6.4 /bin/bash 新建容器web和已經運行的容器lamp連接 
ps 顯示容器的列表
-a  顯示所有信息 
-q  只顯示ID
# docker inspect 5d20c5528521  顯示容器的詳細信息
# docker ps -a -q ID
# docker inspect -f "{{ .State.Pid }}" 5d20c5528521  顯示運行容器的PID
stop|start|restart 停止|啓動|重啓容器
exec 進入容器(推薦使用)
# docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# docker exec -t -i 216c623071b3 /bin/bash
attack CONTAINER_ID  進入容器
# docker attack 216c623071b3
使用 attach 命令有時候並不方便。當多個窗口同時 attach 到同一個容器的時候,所有窗口都會同步顯示。當某個窗口因命令阻塞時,其他窗口也無法執行操作了
nsenter
# yum install util-linux 
# PID=$(docker inspect -f "{{ .State.Pid }}" 5d20c5528521)
# nsenter --target $PID --mount --uts --ipc --net --pid
# nsenter --target 10981 --mount --uts --ipc --net --pid
-t, --target <pid>     要獲取名字空間的目標進程
-m, --mount[=<file>]   enter mount namespace
-u, --uts[=<file>]     enter UTS namespace (hostname etc)
-i, --ipc[=<file>]     enter System V IPC namespace
-n, --net[=<file>]     enter network namespace
-p, --pid[=<file>]     enter pid namespace
rm   刪除一個容器
-f, --force=true  強制刪除
-l, --link=false  刪除容器的連接,但保留容器
-v, --volumes=false  刪除容器掛載的數據卷
export 導出容器,導出一個已經創建的容器到一個文件,不管此時這個容器是否處於運行狀態
-o, --output="" 
# docker export 929bf12bc6ea > centos_6.4_php.tar

其它常用命令

docker -H 127.0.0.1:1234 -d &   修改服務端監聽本地的TCP連接1234端口
volume 管理docker的文件
login  登錄倉庫https://hub.docker.com/,登錄成功後信息保存文件在用戶家目錄/.docker/config.json
輸入用戶,密碼,郵件。
下載 .bashrc_docker,並將內容放到 .bashrc 中
# wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
# echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc
# source ~/.bashrc
這個文件中定義了很多方便使用 Docker 的命令,例如 docker-pid 可以獲取某個容器的 PID;
而 docker-enter 可以進入容器或直接在容器內執行命令


http://liumissyou.blog.51cto.com/4828343/1792500



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章