經常使用命令可分爲如下幾種php
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]
鏡像相關操做命令:linux
//建立鏡像的方法有三種 //基於已有鏡像的容器建立 //基於本地模板導入 //基於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指定
容器經常使用操做命令:git
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
其它經常使用命令github
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/1792500web