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 [images|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中搜索image

--automated=false

-s N, --stars=0  指定評價爲N星級以上的鏡像

# docker search centos6

pull Image_name  從docker register server 中下拉image或者repository

# docker pull centos

# docker pull centos:centos6

# docker pull dl.dockerpool.com:5050/centos:6.8  指定網站下載

push  推送一個image或者repository到registry 

上傳之前要把上傳的image的tag修改爲 hup用戶名/鏡像名字:tag 

如 # docker tag centos6.8:v1 644597521/centos6.8:v1

images  顯示本地的所有鏡像列表

rmi  刪除指定id的鏡像

tag  修改鏡像名

# docker tag test:1 My_image:v2  修改test標記好爲1的名稱爲My_image標記號爲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



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