国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

docker命令詳解

mayaohua / 2764人閱讀

摘要:與命令不同,使用命令只能創建容器而并不啟動選項鏡像名稱命令參數將標準輸入標準輸出標準錯誤鏈接到容器向容器的添加主機名與地址設置資源分配。輸入命令退出后,容器不會停止,而會繼續運行。命令命令用于以格式顯示容器與鏡像的詳細

docker命令詳解 前言

從技術老大那里聽說了docker,閑下來之后就簡單了解了一下,發現真的是一個好用的不得了的工具。遂周末去圖書館找了下相關資料,學習下姿勢。說不定哪天用上了呢?。在看資料的過程中,發現有不少命令都不知道什么意思,所以干脆做了一個整理,以備以后查閱。ps:在docker命令后輸入 -h 參數,可查看詳細命令。我也是參照某本書上的命令整理的,也不是很全,待以后遇到了繼續補充。

文中 =[] 表示設置選項時可以設置不同的值,并且可以多次使用 如: -p 8000:80 -p 8080:8080
命令后面的 =false 表示默認值為 false ="" 表示默認值為空
若用戶不屬于docker組,可能需要sudo執行

docker基礎命令

docker <選項><命令><參數>

--api-enable-cors=false 使用API時,啟用CORS(cross-origin resource sharing)

-b 、--bridge="" 使用事先創建的網橋接口。若設置為none,則不在容器內使用網絡

--bip="" 使用CIDR標記法設置docker 的IP帶寬。該選項不能與-b選項同時使用

如:`-bip="192.168.0.0/24"`

-D 、--debug 啟用調試模式

-d 、--deamon=false 以守護進程模式運行

--dns 設置docker要使用的DNS服務器

--dns-search=[] 設置docker要使用的DNS搜索域。若設置為:example.com,則向服務器查詢hello時,將首先查找hello.example.com

-e、--exec-drive="native" 設置docker運行驅動,可設置為Native與lxc

--fixed-cidr="" 固定分配IPv4地址的帶寬。該IP地址必須在-b選項設置的網橋網絡或--bip設置的IP網段內

-G、--group="docker" 以守護進程模式運行時,使用-H選項創建Unix套接字后,設置該Unix套接字所在的組。使用""空字符串表示不設置分組

-g、 --graph="/var/lib/docker" 設置docker使用目錄的頂層路徑

-H、--host[] 以守護進程模式運行時,設置套接字路徑。

--icc=true 開啟容器間通信

--insecure-registry=[] 使用私有證書搭建docker注冊服務器時,設置docker注冊服務器域名

--ip=0.0.0.0 使用docker run 命令時-p選項將端口暴露在外時,設置要綁定的默認IP地址

--ip-forward=true 開啟net.ipv4.ip_forward

--ip-masq=true 為網橋上的IP地址開啟IP偽裝(masquerading)

--iptables=true 開啟iptables規則

--mtu=0 設置容器的網絡最大傳輸單元(MTU, Maxmum transmission unit)若不設置,則使用路由器的默認MTU或者設置為1500

-p、--pidfile="/var/run/docker.pid" 設置PID文件路徑

-registry-mirror=[] 設置docker registry 的鏡像地址

-s、--storage-driver=[] 設置儲存驅動,默認為auto,也可以設置為drivcemapper

--selinux-enabled=false開啟SELinux SELinux尚不支持BTRFS儲存驅動

--storage-opt 設置存儲驅動選項

--tls=false 使用TLS

--tlscacert="/home/exapmleuser/.docker/ca.pem" 設置要在遠程證書中使用的CA證書文件的路徑

--tlscert="/home/exapmleuser/.docker/cert.pem" 設置證書文件路徑

--tlskey="/home/exapmleuser/.docker/key.pem" 設置密匙文件路徑

tlsverify="false" 使用TLS遠程證書,守護進程與客戶端全部使用證書驗證

-v、--version=false 打印版本信息

attach命令

attach命令用于將標準輸入(stdin)與標準輸出(stdout)連接到正在運行的容器

docker attach <選項><容器名稱, id>

--no-stdin=false 不連接標準輸入

--sig-proxy=true 將所有信號傳遞給進程(非TTY模式時也一樣)但不傳送SIGCHLD、SIGKILL、SIGSTOP信號。經常使用的信號如下:

SIGINT:interrupt信號,輸入Ctrl + c 時發生
SIGQUIT:Quit信號,輸入Ctrl +  時發生
EOF:終止attach狀態,輸入Ctrl + d 時發生

一般會先運行Bash等shell,然后使用docker attach 命令連接到容器,在運行各種命令
docker run -it --name hello ubuntu /bin/bash
docker attach hello

build 命令

build命令使用Dockerfile文件創建鏡像

docker build <選項>

Dockerfile 路徑可以使是本地路徑,也可以是URL路徑。若設置為 - ,則從標準輸入獲取Dockerfile的內容

--force-rm=false 創建鏡像失敗時,刪除臨時容器

--no-cache=false 不使用之前構建中創建的緩存。

-q、--quiet=false 不顯示Dockerfile的RUN運行的輸出結果

--rm=true 創建鏡像成功時,刪除臨時容器

-t、--tag="" 設置注冊名稱、鏡像名稱、標簽。格式為 <注冊名稱>/<鏡像名稱>:<標簽>(標簽默認為latest)

commit 命令

commit命令用于從容器的修改項創建顯得鏡像

docker commit <選項><容器名稱,id>/<鏡像名稱>:<標簽>

-a、--author="" 設置獎項創建者的有關信息
-m、--message="" 設置有關變更事項的日志信息
-p、--pause=true 創建鏡像是暫停容器

cp 命令

cp命令用于將容器的目錄或文件復制的到主機。若將cp命令中的路徑設置為目錄,則將該目錄下的所有內容復制到主機

docker cp <容器名稱>:<路徑><主機路徑>

$ docker cp hello:/etc . 將容器內的整個/etc 目錄復制到主機當前文件夾下

create 命令

create 命令使用指定的鏡像創建容器。與run命令不同,使用create命令只能創建容器而并不啟動

docker create <選項><鏡像名稱,id><命令><參數>

-a 、--attach=[] 將標準輸入、標準輸出、標準錯誤鏈接到容器

--attach="stdin"

--add-host=[] 向容器的/etc/hosts添加主機名與IP地址

--add-host=hello:192.168.0.233

-C、--cpu-shares=0 設置cup資源分配。默認是這值為1024,各值為相對值

若設置為--cpu-shares=2048, 則分配默認值為2倍的CPU資源
在Linux內核的cgroups中使用該設置的值

--cap-add[] 設置容器中使用的cgroups的特定Capablity。若設置為ALL,則使用所有的Capablity
--cap-drop=[] 從容器刪除cgroup的特定Capablity
--cidfile="" 設置cid文件路徑。cid中存儲著所創建容器的id
--cpuset="" 在多核CPU中設置要運行容器的核心數

若設置--cpuset="0,1" 則使用第一與第二個cup
若這是--cupset="0-2" 則使用從第一到第三個cup

--device=[] 添加主機設備到容器,格式為<主機設備>:<容器設備>

若設置為 --device="/dev/sda1:/dev/sda1",則在容器中也可以使用主機的/dev/sda1塊設備

--dns=[] 設置容器中要用到的DNS服務器

--dns-search=[] 設置docker要使用的DNS搜索域。

-e、--env=[] 向容器設置環境變量。一般用于傳遞設置或者密碼

如:-e MYSQL_ROOT_PASSWORD=root

--entrypoint="" 忽略Dockerfile的ENTRYPOINT設置,強制設置為其他值。

如:--entrypoint="/bin/bash"

--env-file=[] 向容器應用設置環境變量文件
--expose=[] 僅連接容器的端口與主機,并不暴露在外

--expose="3306"

-h、--hostname="" 設置容器主機名
-i、--interactive=false 激活標準輸入,即使未與容器連接(attach),也維持標準輸入。一般使用該選項向Bash輸入命令
--link=[] 進行容器連接,格式為<容器名稱>:<別名>

--link mysql-server:mysql

--lxc-conf=[] 若使用LXC驅動,則可以設置LXC選項

--lxc-conf="lxc.cgroup.cpuset.cpu = 0,1"    

-m、--memory="" 設置內存限制,格式為<數字><單位>,單位可以使用b,k,m,g

--memory="512m"  

--name 設置容器名稱
--net="bridge" 設置容器的網絡模式(選項可以是:bridge,none,container,host)
-P、--publish-all=false 將連接到主機的容器的所有端口暴露在外
-p、--publish=[] 將連接到主機的容器的特定端口暴露在外。一般主要用于暴露web服務器的端口
--privileged=false 在容器內部使用主機的所有Linux內核功能
--restart="" 設置容器內部進程終止時重啟策略

--restart=no 即使進程終止也不重啟
--restart="on-failure" 僅當進程的Exit Code 不為0時執行重啟。也可以設置重置次數。若不設置重試次數,這不斷重啟。如 --restart="no-failure:10"
--restart="always" 不受Exit Code的影響,總是重啟

--security-opt=[] 設置SELinux、AppArmor 選項
-t、--tty=false 使用TTY模式(pseudo-TTY)。若要使用Bash,則必須設置該選項。若不設置該選項,則可以輸入命令,但不顯示shell
-u、--user="" 設置容器運行時要使用的Linux用戶賬戶與UID
-v、--volume=[] 設置數據卷。設置要與主機共享目錄,不將文件保存到容器,而直接保存到主機。在主機目錄后添加 :ro、:rw進行讀寫設置,默認為:rw。
--volumes-from=[] 連接數據卷容器,設置格式為<容器名,id>:<:ro, :rw> 默認情形下,讀寫設置遵從-v選項的設置。
-w、--workdir="" 設置容器內部要運行進程的目錄

運行如下命令,創建容器
$ docker create -it --name hello ubuntu /bin/bash
若想使用剛剛創建的容器,則必須使用docker start 命令啟動容器
$ docker start hello
進入容器內部
$ docker attach hello
diff 命令

diff命令用于檢查容器文件系統的修改

docker diff <容器名稱,id>

比較文件是否修改的標準是容器創建時的鏡像內容

A:添加的文件
C:修改的文件
D:刪除的文件
events 命令

events命令用于實時輸出Docker服務器中發生的事件

docker events

--since="" 輸出特定的timestamp之后的事件
--until="" 輸出特定的timestamp之前的事件
運行docker events命令,進入待機狀態

$ docker events

在另一終端,運行容器

$ docker start hello  #假設容器已存在

就會在剛剛的docker events 命令窗口看到 運行hello 容器的事件

exec 命令

exec命令用于從外部運行容器內部的命令

docker exec <選項><容器名稱,id><命令><參數>

-d、--detach=false 以后臺模式運行命令
-i、--interactive=false 開啟標準輸入,即使未與容器連接,也維持標準輸入
-t、--tty=false 使用TTY模式(pseudo-TTY)若要使用bash,則必須設置該選項。若不設置該選項,則雖然輸入命令,但不顯示shell
運行如下命令,創建容器

$ docker run -d --name hello ubuntu /bin/bash -c "while true; do echo Hello World; sleep 1; done"

設置每隔一秒輸出一次hello world。在此狀態下,運行容器內部的/bin/bash,連接至bash shell ,如下所示。連接bash shell 時,只有使用 -i -t 選項才能輸入命令并查看結果

$ docker exec -it hello /bin/bash  #連接容器
$ ps ax  # 查看進程


若在容器內部運行ps ax 命令,則可以看到由docker exec 命令運行的其他/bin/bash,與輸出hello world 的/bin/bash 不是同一個。輸入exit命令退出Bash shell后,容器不會停止,而會繼續運行。像這樣,靈活使用 docker exec 命令將Bash shell 連接到正在運行守護進程的容器上,并行多種操作
如下:不連接Bash shell,而使用apt-get等命令,在容器內安裝redis-server包,

$ docker exec hello apt-get update
$ docker exec hello apt-get install -y redis-server
$ docker exec -d hello redis-server # 后臺運行rides-server
export 命令

export命令將用于將容器的文件系統導出為tar文件包

docker export <容器名稱,id>

只運行docker export 命令后,由于容器的內容會輸出到標準輸出,所以必須設置重定向

$ docker run -it -d --name hello ubuntu /bin/bash
$ docker export hello > hello.tar
history 命令

history 命令用于顯示鏡像的歷史。此處的歷史依據Dockerfile文件中的設置創建。

docker history <選項><鏡像名稱,id>

--no-trunc=false 輸出所有因內容過長而省略的部分
-q、--quiet=false 只顯示鏡像id

images 命令

images命令用于輸出鏡像列表

docker images <選項><鏡像名稱,id>

-a、--all=false 列出所有鏡像,包括父鏡像
-f、--filter=[] 設置輸出結果過濾。若設置為"dangling=true",則只輸出無名鏡像
--no-trunc=false 顯示所有因內容過長而省略的部分

import 命令

import命令用于從壓縮為tar文件(.tar .tar.gz .tgz .bzip .tar.xz .txz)的文件系統創建鏡像

docker import <注冊名稱>/<鏡像名稱>:<標簽>

使用import命令時,可以設置tar文件的URL,若設置為 - ,則從標準輸入接收tar文件的內容。既可以使用由docker export 命令創建的tar文件,也可以直接組織文件系統。

$ docker import http://example.com/hello.tar.zg hello

下列命令中使用本地的 hello.tar 文件的內容通過管道傳遞給 docker import 命令

$ cat hello.tar | docker import - hello

若想將當前目錄的內容直接創建為鏡像:

$ tar -c . | docker import - hello
info 命令

info命令用于顯示當前系統信息、docker容器、鏡像個數、設置等信息。

docker info

inspect 命令

inspect 命令用于以JSON格式顯示容器與鏡像的詳細信息

docker inspect <選項><容器或鏡像名稱,id>

-f、--format="" 只顯示指定信息。如:"{{.NetworkSettings.IPAddress}}" 使用 . 來設置JSON文檔的下層項目
下面命令顯示容器的IP地址

$ docker run -it -d --name hello ubuntu /bin/bash
$ docker inspect -f "{{.NetworkSettings.IPAddress}}" hello

下面命令只從容器的詳細信息中抽取特定部分,并按照所希望的格式顯示

$ docker run -it -d --name hello -p 8000:80 -p 8080:8080 ubuntu /bin/bash
$ docker inspect -f "{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}" hello


此處使用 {{range $p, $conf := .NetworkSettings.Ports}} 循環訪問 .NetworkSettings.Ports 的值,并代入 $p $conf。然后輸出$p,并將$conf數組的第一項 (index $conf 0) 的 .HostPort 輸出。
另:.NetworkSettings.Ports 是一個map類型數據結構:

 map[80/tcp:[{0.0.0.0 8000}] 8080/tcp:[{0.0.0.0 8080}]]
kill 命令

kill命令用于向容器發送KILL信號,從而關閉容器(推薦使用更優雅溫和的 docker stop 命令)

docker <選項><容器名稱,id>

-s、--signal="KILL" 發送特定信號

load 命令

load命令用于從tar文件創建鏡像

docker load <選項>

將tar文件發送到 docker load 命令的標準輸入,然后創建鏡像。tar文件由 docker save 命令創建,包含鏡像名稱與標簽。
-i、--input="" 不使用標準輸入,設置文件路徑并創建鏡像。

$ docker save myimages > myimages.tar  #將已存在的鏡像保存為tar文件
$ docker load < myimages.tar  #在另一臺電腦從tar文件創建鏡像
login 命令

login命令用于登錄Docker 的注冊服務器
docker login <選項>

若不設置注冊服務器的地址,則默認登錄dockerhub(api https://index.docker.io/v1/)
-e、--email="" 設置登錄時使用的電子郵件
-p、--password="" 設置登錄密碼
-u、--username="" 設置登錄時使用的賬號

logout 命令

logout命令用于從Docker注冊服務器中登出

docker logout <選項>

若不設置注冊服務器的地址,則默認為dockerhub(api https://index.docker.io/v1/)

logs 命令

logs命令用于輸出容器日志

docker logs <容器名稱,id>

-f、--follow=false 一直輸出實時日志
-t、--timestamp=false 在登錄時顯示時間值
--tail="all" 指定數字,只從日志中輸出一定個數

port 命令

port命令用于查看容器的某個端口是否處于開放狀態

docker port <容器名稱,id><端口>

pause 命令

pause命令用于暫停容器中正在運行的所有進程

docker pause <容器名稱,id>

ps 命令

ps命令用于輸出容器列表

docker ps <選項>

-a、--all=false 列出所有容器。不帶 -a 只輸出在運行的容器
--before="" 列出特定容器創建前的容器,包含停止的容器。
-f、--filter=[] 設置輸出過濾。如 "exited=0"
-l、--latest=false 列出最后創建的容器,包含停止的容器
-q、--quiet=false 只輸出容器的id

push 命令

push命令用于將鏡像推送到Docker注冊服務器

docker push <注冊名>/<鏡像名>:<標簽>

注冊名中既可以設置Docker Hub 的用戶名,也可以設置注冊地址
若不設置標簽,則推送所有標簽的鏡像

$ docker pull user/hello:latest

如下推送到個人倉庫

$ docker pull 192.168.0.33:6666/hello:latest
$ docker pull yourset.com:6666/hello:latest
restart 命令

restart命令用戶重啟容器

docker restart <選項><容器名稱,id>

-t、time=10 設置從容器停止到重啟的等待時間,單位為秒

$ docker restart hello
rm 命令

rm 命令用于刪除容器

docker rm <選項><容器名稱,id>

-f、--force=false 強制停止容器后刪除(使用SIGKILL信號)
-l、--link=false 在docker run 命令中使用--link 選項,只刪除連接,不刪除容器。
-v、--volumes=false 刪除連接到容器的數據卷
若要一次刪除所有容器,可在docker ps:命令中使用 -a -q 選項獲取容器id只有傳給docker rm 命令

$ docker rm `docker ps -aq`
$ docker rm $(docker ps -aq)
rmi 命令

rmi命令用于刪除鏡像。若不指定標簽,則刪除latest標簽

docker rim <注冊名稱>/<鏡像名稱,id>:<標簽>

-f、--force=false 強制刪除鏡像
--no-prune=false 不刪除不帶標簽的父級鏡像

$ docker rmi hello
$ docker rmi user/hello:latest
$ docker rmi 192.168.0.33:6666/hello:latest  #遠程倉庫鏡像
$ docker pull yourset.com:6666/hello:latest  #遠程倉庫鏡像

刪除所有鏡像與刪除容器類似

$ docker rmi `docker images -aq`
run 命令

run命令用于指定鏡像創建容器

docker run <選項><鏡像名稱,id><命令><參數>

docker run 命令 與 docker create 基本類似 唯一的不同是 run命令在創建容器后會啟動容器,所以參數基本類似,只是多了關于啟動后的設置,一下是多出來的命令:

-d、--detach Detach模式,一般為守護進程模式,容器以后臺方式運行
--rm=false 若容器內的進程終止,則自動刪除容器,此選項不能與-d選項一起使用
--sig-proxy=true 將所有信號傳遞給進程(非TTY模式時也一樣),但不傳遞SIGCHLD、SIGKILL、SIGSTOP信號

save 命令

save命令用于將鏡像保存為tar包文件

docker save <選項><鏡像名稱>:<標簽>

-o、--output="" 設置保存的文件名
若不設置-o選項,tar文件會輸出到標準輸出,所以必須設置重定向。如果僅指定鏡像名稱而未指定標簽,則將所有標簽保存到一個tar文件。

search 命令

search命令用與在docker hub 中搜索鏡像

docker search <選項><搜索詞>

--automated=false 只顯示由docker hub 的automated build 創建的鏡像
--no-trunc=false 顯示所有因因為內容過長而省略的部分
-s、--stars=0 顯示滴啊有特定星級以上的鏡像

start 命令

start命令用于啟動容器

docker start <選項><容器名稱,id>

-a、--attrch=false 將標準輸入、標準輸出、標準錯誤連接到容器,傳遞所有信號
-i、--interactive=false 激活標準輸入

stop 命令

stop命令用于終止容器

docker stop <選項><容器名稱,id>

-t、--time=10 設置終止容器前的等待時間,單位為秒

tag 命令

tag命令用于設置鏡標簽

docker tag <選項><鏡像名稱>:<標簽><注冊地址,用戶名>/<鏡像名稱>:<標簽>

-f、--force=false 即使已擁有標簽也強制設置
如將遠程倉庫設置標簽

$ docker tag hello:latest user/hello:0.1  #設置docker hub上的
$ docker tag hello:latest youset:6666/hello:0.1  #私人倉庫
top 命令

top命令用于顯示容器中正在運行的進程信息

docker top <容器名稱,id>

中設置 Linux ps 命令的選項 參考

$ docker top hello aux
unpause 命令

unpause命令用于重啟 pause 命令暫停的容器

docker unpause <容器名稱,id>

version 命令

> version命令用于輸出docker的版本信息

> docker version

wait 命令

wait 命令等待容器終止,然后輸出 Exit Code

docker wait <容器名稱,id>

后記

單一的容器一般不能滿足業務需要,需要一個編排的工具。Docker Compose和Docker Swarm 正是負責快速在集群中部署分布式應用。漫漫長路,學的還有好多,工作雖不是負責這方面的,我想做的只是將自己的想法運行在代碼是而已。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26841.html

相關文章

  • awk在刪除鏡像過程中的用法及說明

    摘要:實際上,認為文本文件都是結構化的,它將每一個輸入行定義為一個記錄,行中的每個字符串定義為一個域段,域和域之間使用分割符分割。 看到一篇Docker 技巧:刪除 Docker 容器和鏡像其中提到刪除標簽為none的鏡像的方法,其中用到了awk,就去查了下,下面舉例說明: docker rmi $(docker images | awk $1 == && $2 == {print $3...

    lentoo 評論0 收藏0
  • docker命令詳解

    摘要:說明方括號表示里面的參數可省任何查詢結果都可以通過進行篩選注釋符命令解釋必填參數系統安裝容器安裝依賴安裝容器服務容器版本倉庫倉庫是集中存放鏡像的地方公有倉庫私有倉庫注冊服務器存放倉庫的具體服務器公有倉庫輸入用戶信息登錄到本地保存用戶的 說明 : [] 方括號表示 => 里面的參數可省 grep name 任何查詢結果都可以通過 grep 進行篩選 # ...

    olle 評論0 收藏0
  • 誰用光了磁盤?Docker System命令詳解

    摘要:用了一段時間后,會發現它占用了不少硬盤空間。為了避免構建鏡像時使用緩存,我在命令之前添加了一行命令。引入了命令,類似于上的命令,用于查看的磁盤使用情況。這些鏡像占用了超過磁盤空間。現在,已使用的磁盤空間又變成了。 譯者按: Docker鏡像,容器,數據卷以及網絡都會占用主機的磁盤空間,這樣的話,磁盤很容易就會被用完。這篇博客介紹了一個簡單的解決方案 - Docker System命令。...

    mdluo 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<