?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
創(chuàng)建一個(gè)新容器
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
名字,簡(jiǎn)寫(xiě) | 默認(rèn) | 描述 |
---|---|---|
--add-host | 添加自定義的主機(jī)到IP映射(主機(jī):IP) | |
--attach, -a | 附加到STDIN,STDOUT或STDERR | |
--blkio-weight | 0 | 阻止IO(相對(duì)權(quán)重),介于10和1000之間,或0禁用(默認(rèn)值為0) |
--blkio-weight-device | 塊IO重量(相對(duì)設(shè)備重量) | |
--cap-add | 添加Linux功能 | |
--cap-drop | 刪除Linux功能 | |
--cgroup-parent | 容器的可選父cgroup | |
--cidfile | 將容器ID寫(xiě)入文件 | |
--cpu-count | 0 | CPU數(shù)量(僅限Windows) |
--cpu-percent | 0 | CPU百分比(僅限Windows) |
--cpu-period | 0 | 限制CPU CFS(完全公平調(diào)度程序)期間 |
--cpu-quota | 0 | 限制CPU CFS(完全公平調(diào)度程序)配額 |
--cpu-rt-period | 0 | 限制CPU實(shí)時(shí)周期(以微秒為單位) |
--cpu-rt-runtime | 0 | 以微秒為單位限制CPU實(shí)時(shí)運(yùn)行時(shí)間 |
--cpu-shares,-c | 0 | CPU份額(相對(duì)重量) |
--cpus | CPU數(shù)量 | |
--cpuset-cpus | 允許執(zhí)行的CPU(0-3,0,1) | |
--cpuset-MEMS | 允許執(zhí)行的MEM(0-3,0,1) | |
--device | 將主機(jī)設(shè)備添加到容器 | |
--device-cgroup-rule | 將規(guī)則添加到cgroup允許的設(shè)備列表 | |
--device-read-bps | 限制設(shè)備的讀取速率(每秒字節(jié)數(shù)) | |
--device-read-iops | 限制設(shè)備的讀取速率(每秒IO) | |
--device-write-bps | 限制寫(xiě)入速率(每秒字節(jié)數(shù))到設(shè)備 | |
--device-write-iops | 限制寫(xiě)入速率(每秒IO)到設(shè)備 | |
--disable-content-trust | 真正 | 跳過(guò)圖像驗(yàn)證 |
--dns | 設(shè)置自定義DNS服務(wù)器 | |
--dns-OPT | 設(shè)置DNS選項(xiàng) | |
--dns-option | 設(shè)置DNS選項(xiàng) | |
--dns-search | 設(shè)置自定義DNS搜索域 | |
--entrypoint | 覆蓋圖像的默認(rèn)入口點(diǎn) | |
--env,-e | 設(shè)置環(huán)境變量 | |
--env-file | 讀入環(huán)境變量文件 | |
--expose | 公開(kāi)一個(gè)端口或一系列端口 | |
--group-add | 添加其他群組加入 | |
--health-cmd | 運(yùn)行以檢查運(yùn)行狀況的命令 | |
--health-interval | 0 | 運(yùn)行檢查之間的時(shí)間(ms | s | m | h)(默認(rèn)為0) |
--health-retries | 0 | 需要報(bào)告不健康的連續(xù)失敗 |
--health-start-period | 0 | 啟動(dòng)健康重試倒數(shù)前,容器初始化的開(kāi)始時(shí)間段(ms | s | m | h)(默認(rèn)為0) |
--health-timeout | 0 | 允許一次檢查運(yùn)行的最長(zhǎng)時(shí)間(ms | s | m | h)(默認(rèn)值為0) |
--help | 假 | 打印用法 |
--hostname,-h | 容器主機(jī)名稱 | |
--init | 假 | 在容器中運(yùn)行一個(gè)轉(zhuǎn)發(fā)信號(hào)并收集進(jìn)程的init |
--interactive, -i | 假 | 即使沒(méi)有連接,也要保持STDIN打開(kāi) |
--io-MaxBandwidth | 0 | 系統(tǒng)驅(qū)動(dòng)器的最大IO帶寬限制(僅限Windows) |
--io-maxiops | 0 | 系統(tǒng)驅(qū)動(dòng)器的最大IOps限制(僅限Windows) |
--ip | IPv4地址(例如172.30.100.104) | |
--ip6 | IPv6地址(例如,2001:db8 :: 33) | |
--ipc | IPC命名空間使用 | |
--isolation | 容器隔離技術(shù) | |
--kernel-memory | 0 | 內(nèi)核內(nèi)存限制 |
--label, -l | 在容器上設(shè)置元數(shù)據(jù) | |
--label-file | 閱讀標(biāo)簽的行分隔文件 | |
--link | 將鏈接添加到其他容器 | |
--link-local-ip | Container IPv4 / IPv6鏈路本地地址 | |
--log-driver | 記錄容器的驅(qū)動(dòng)程序 | |
--log-OPT | 日志驅(qū)動(dòng)選項(xiàng) | |
--mac-address | 容器MAC地址(例如,92:d0:c6:0a:29:33) | |
--memory, -m | 0 | 內(nèi)存限制 |
--memory-reservation | 0 | 內(nèi)存軟限制 |
--memory-swap | 0 | 交換限制等于內(nèi)存加交換:'-1'以啟用無(wú)限交換 |
--memory-swappiness | -1 | 調(diào)整容器內(nèi)存swappiness(0到100) |
--mount | 將文件系統(tǒng)掛載附加到容器 | |
--name | 為容器分配一個(gè)名稱 | |
--net | 默認(rèn) | 將容器連接到網(wǎng)絡(luò) |
--net-alias | 為容器添加網(wǎng)絡(luò)范圍的別名 | |
--network | 默認(rèn) | 將容器連接到網(wǎng)絡(luò) |
--network-alias | 為容器添加網(wǎng)絡(luò)范圍的別名 | |
--no-healthcheck | 假 | 禁用任何容器指定的HEALTHCHECK |
--oom-kill-disable | 假 | 禁用OOM殺手 |
--oom-score-adj | 0 | 調(diào)整主機(jī)的OOM首選項(xiàng)(從-1000到1000) |
--pid | 要使用的PID名稱空間 | |
--pids-limit | 0 | 調(diào)整容器匹配限制(無(wú)限制地設(shè)置-1) |
--privileged | 假 | 給這個(gè)容器賦予擴(kuò)展權(quán)限 |
--publish,-p | 將容器的端口發(fā)布到主機(jī) | |
--publish-all,-P | 假 | 將所有暴露的端口發(fā)布到隨機(jī)端口 |
--read-only | 假 | 將容器的根文件系統(tǒng)掛載為只讀 |
--restart | 沒(méi)有 | 重新啟動(dòng)策略以在容器退出時(shí)應(yīng)用 |
--rm | 假 | 當(dāng)容器退出時(shí)自動(dòng)移除容器 |
--runtime | 運(yùn)行時(shí)用于此容器 | |
--security-opt | 安全選項(xiàng) | |
--shm-size | 0 | / dev / shm的大小 |
--stop-signal | SIGTERM | 停止容器的信號(hào) |
--stop-timeout | 0 | 超時(shí)(以秒為單位)停止容器 |
--storage-opt | 容器的存儲(chǔ)驅(qū)動(dòng)程序選項(xiàng) | |
--sysctl | 地圖[] | Sysctl選項(xiàng) |
--tmpfs | 掛載一個(gè)tmpfs目錄 | |
--tty, -t | 假 | 分配一個(gè)偽TTY |
--ulimit | Ulimit選項(xiàng) | |
--user,-u | 用戶名或UID(格式:<名稱| uid>:<組| gid>) | |
--userns | 要使用的用戶名稱空間 | |
--uts | UTS命名空間使用 | |
--volume, -v | 綁定安裝一個(gè)卷 | |
--volume-driver | 容器的可選卷驅(qū)動(dòng)程序 | |
--volumes-from | 從指定容器裝載卷 | |
--workdir,-w | 容器內(nèi)的工作目錄 |
命令 | 描述 |
---|---|
docker | Docker CLI的基本命令。 |
docker create
命令在指定的映像上創(chuàng)建一個(gè)可寫(xiě)容器層,并為運(yùn)行指定的命令做好準(zhǔn)備。然后將容器ID打印到STDOUT
。這與docker run -d
容器永遠(yuǎn)不會(huì)啟動(dòng)的情況類似。然后您可以使用該docker start <container_id>
命令隨時(shí)啟動(dòng)容器。
當(dāng)您希望提前設(shè)置容器配置以便在需要時(shí)啟動(dòng)它時(shí),這非常有用。新容器的初始狀態(tài)是created
。
請(qǐng)看運(yùn)行命令部分和碼頭運(yùn)行參考更多細(xì)節(jié)。
$ docker create -t -i fedora bash 6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752 $ docker start -a -i 6d8af538ec5 bash-4.2#
從v1.4.0開(kāi)始,容器卷在該docker create
階段被初始化(即,docker run
也是)。例如,這可以讓你create
的data
體積的容器中,然后用它從另一個(gè)容器:
$ docker create -v /data --name data ubuntu 240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57 $ docker run --rm --volumes-from data ubuntu ls -la /data total 8drwxr-xr-x 2 root root 4096 Dec 5 04:10 .drwxr-xr-x 48 root root 4096 Dec 5 04:11 ..
同樣,create
主機(jī)目錄綁定安裝的卷容器,然后可以從后續(xù)容器中使用該容器:
$ docker create -v /home/docker:/docker --name docker ubuntu 9aa88c08f319cd1e4515c3c46b0de7cc9aa75e878357b1e96f91e2c773029f03 $ docker run --rm --volumes-from docker ubuntu ls -la /docker total 20drwxr-sr-x 5 1000 staff 180 Dec 5 04:00 .drwxr-xr-x 48 root root 4096 Dec 5 04:13 ..-rw-rw-r-- 1 1000 staff 3833 Dec 5 04:01 .ash_history-rw-r--r-- 1 1000 staff 446 Nov 28 11:51 .ashrc-rw-r--r-- 1 1000 staff 25 Dec 5 04:00 .gitconfig drwxr-sr-x 3 1000 staff 60 Dec 1 03:28 .local-rw-r--r-- 1 1000 staff 920 Nov 28 11:51 .profile drwx--S--- 2 1000 staff 460 Dec 5 00:51 .ssh drwxr-xr-x 32 1000 staff 1140 Dec 5 04:01 docker
設(shè)置每個(gè)容器的存儲(chǔ)驅(qū)動(dòng)程序選項(xiàng)。
$ docker create -it --storage-opt size=120G fedora /bin/bash
這個(gè)(大小)將允許在創(chuàng)建時(shí)將容器rootfs大小設(shè)置為120G。此選項(xiàng)僅適用于devicemapper
,btrfs
,overlay2
,windowsfilter
和zfs
圖形驅(qū)動(dòng)程序。對(duì)于devicemapper
,btrfs
,windowsfilter
和zfs
圖形驅(qū)動(dòng)程序,用戶無(wú)法通過(guò)的尺寸小于默認(rèn)尺寸BaseFS。對(duì)于overlay2
存儲(chǔ)驅(qū)動(dòng)程序,大小選項(xiàng)僅在支持fs為xfs
并使用pquota
安裝選項(xiàng)安裝時(shí)可用。在這些條件下,用戶可以通過(guò)任何小于支持fs大小的大小。
在Windows上運(yùn)行Docker容器的情況下,此選項(xiàng)很有用。該--isolation=<value>
選項(xiàng)設(shè)置容器的隔離技術(shù)。在Linux上,唯一支持的是default
使用Linux命名空間的選項(xiàng)。在Microsoft Windows上,您可以指定這些值:
值 | 描述 |
---|---|
默認(rèn) | 使用Docker守護(hù)進(jìn)程的--exec-opt指定的值。如果守護(hù)進(jìn)程未指定隔離技術(shù),則Microsoft將使用進(jìn)程作為其默認(rèn)值 |
守護(hù)進(jìn)程在Windows服務(wù)器上運(yùn)行,如果在Windows客戶端上運(yùn)行,則守護(hù)進(jìn)程運(yùn)行在hyperv上。 | |
process | 僅命名空間隔離。 |
Hyper-V | 基于Hyper-V管理程序分區(qū)的隔離。 |
指定--isolation
沒(méi)有值的標(biāo)志與設(shè)置--isolation="default"
相同。
在創(chuàng)建時(shí)分配可用于容器的設(shè)備。分配的設(shè)備都將被添加到cgroup.allow文件,并在運(yùn)行后創(chuàng)建到容器中。當(dāng)需要將新設(shè)備添加到正在運(yùn)行的容器時(shí),這會(huì)造成問(wèn)題。
解決方案之一是向容器添加更寬松的規(guī)則,以允許訪問(wèn)更廣泛的設(shè)備。例如,假設(shè)我們的容器需要訪問(wèn)具有主要42
和任意次數(shù)的字符設(shè)備(添加為新設(shè)備出現(xiàn)),則會(huì)添加以下規(guī)則:
docker create --device-cgroup-rule='c 42:* rmw' -name my-container my-image
然后,用戶可能會(huì)要求udev
執(zhí)行腳本,docker exec my-container mknod newDevX c 42 <minor>
以便在添加所需設(shè)備時(shí)使用該腳本。
注意:最初存在的設(shè)備仍然需要明確地添加到 create / run 命令中