国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

directory search
Compose About versions and upgrading (Compose) ASP.NET Core + SQL Server on Linux (Compose) CLI environment variables (Compose) Command-line completion (Compose) Compose(組成) Compose command-line reference(組合命令行參考) Control startup order (Compose) Django and PostgreSQL (Compose) Docker stacks and distributed application bundles (Compose) docker-compose build(docker-compose構(gòu)建) docker-compose bundle docker-compose config docker-compose create docker-compose down docker-compose events docker-compose exec docker-compose help docker-compose images docker-compose kill docker-compose logs docker-compose pause docker-compose port docker-compose ps docker-compose pull docker-compose push docker-compose restart docker-compose rm docker-compose run docker-compose scale docker-compose start docker-compose stop docker-compose top docker-compose unpause docker-compose up Environment file (Compose) Environment variables in Compose Extend services in Compose Frequently asked questions (Compose) Getting started (Compose) Install Compose Link environment variables (deprecated) (Compose) Networking in Compose Overview of Docker Compose Overview of docker-compose CLI Quickstart: Compose and WordPress Rails and PostgreSQL (Compose) Sample apps with Compose Using Compose in production Using Compose with Swarm Engine .NET Core application (Engine) About images, containers, and storage drivers (Engine) Add nodes to the swarm (Engine) Apply custom metadata (Engine) Apply rolling updates (Engine) apt-cacher-ng Best practices for writing Dockerfiles (Engine) Binaries (Engine) Bind container ports to the host (Engine) Breaking changes (Engine) Build your own bridge (Engine) Configure container DNS (Engine) Configure container DNS in user-defined networks (Engine) CouchDB (Engine) Create a base image (Engine) Create a swarm (Engine) Customize the docker0 bridge (Engine) Debian (Engine) Default bridge network Delete the service (Engine) Deploy a service (Engine) Deploy services to a swarm (Engine) Deprecated Engine features Docker container networking (Engine) Docker overview (Engine) Docker run reference (Engine) Dockerfile reference (Engine) Dockerize an application Drain a node (Engine) Engine FAQ (Engine) Fedora (Engine) Get started (Engine) Get started with macvlan network driver (Engine) Get started with multi-host networking (Engine) How nodes work (Engine) How services work (Engine) Image management (Engine) Inspect the service (Engine) Install Docker (Engine) IPv6 with Docker (Engine) Join nodes to a swarm (Engine) Legacy container links (Engine) Lock your swarm (Engine) Manage nodes in a swarm (Engine) Manage sensitive data with Docker secrets (Engine) Manage swarm security with PKI (Engine) Manage swarm service networks (Engine) Migrate to Engine 1.10 Optional Linux post-installation steps (Engine) Overview (Engine) PostgreSQL (Engine) Raft consensus in swarm mode (Engine) Riak (Engine) Run Docker Engine in swarm mode Scale the service (Engine) SDKs (Engine) Select a storage driver (Engine) Set up for the tutorial (Engine) SSHd (Engine) Storage driver overview (Engine) Store service configuration data (Engine) Swarm administration guide (Engine) Swarm mode key concepts (Engine) Swarm mode overlay network security model (Engine) Swarm mode overview (Engine) Understand container communication (Engine) Use multi-stage builds (Engine) Use swarm mode routing mesh (Engine) Use the AUFS storage driver (Engine) Use the Btrfs storage driver (Engine) Use the Device mapper storage driver (Engine) Use the OverlayFS storage driver (Engine) Use the VFS storage driver (Engine) Use the ZFS storage driver (Engine) Engine: Admin Guide Amazon CloudWatch logs logging driver (Engine) Bind mounts (Engine) Collect Docker metrics with Prometheus (Engine) Configuring and running Docker (Engine) Configuring logging drivers (Engine) Control and configure Docker with systemd (Engine) ETW logging driver (Engine) Fluentd logging driver (Engine) Format command and log output (Engine) Google Cloud logging driver (Engine) Graylog Extended Format (GELF) logging driver (Engine) Journald logging driver (Engine) JSON File logging driver (Engine) Keep containers alive during daemon downtime (Engine) Limit a container's resources (Engine) Link via an ambassador container (Engine) Log tags for logging driver (Engine) Logentries logging driver (Engine) PowerShell DSC usage (Engine) Prune unused Docker objects (Engine) Run multiple services in a container (Engine) Runtime metrics (Engine) Splunk logging driver (Engine) Start containers automatically (Engine) Storage overview (Engine) Syslog logging driver (Engine) tmpfs mounts Troubleshoot volume problems (Engine) Use a logging driver plugin (Engine) Using Ansible (Engine) Using Chef (Engine) Using Puppet (Engine) View a container's logs (Engine) Volumes (Engine) Engine: CLI Daemon CLI reference (dockerd) (Engine) docker docker attach docker build docker checkpoint docker checkpoint create docker checkpoint ls docker checkpoint rm docker commit docker config docker config create docker config inspect docker config ls docker config rm docker container docker container attach docker container commit docker container cp docker container create docker container diff docker container exec docker container export docker container inspect docker container kill docker container logs docker container ls docker container pause docker container port docker container prune docker container rename docker container restart docker container rm docker container run docker container start docker container stats docker container stop docker container top docker container unpause docker container update docker container wait docker cp docker create docker deploy docker diff docker events docker exec docker export docker history docker image docker image build docker image history docker image import docker image inspect docker image load docker image ls docker image prune docker image pull docker image push docker image rm docker image save docker image tag docker images docker import docker info docker inspect docker kill docker load docker login docker logout docker logs docker network docker network connect docker network create docker network disconnect docker network inspect docker network ls docker network prune docker network rm docker node docker node demote docker node inspect docker node ls docker node promote docker node ps docker node rm docker node update docker pause docker plugin docker plugin create docker plugin disable docker plugin enable docker plugin inspect docker plugin install docker plugin ls docker plugin push docker plugin rm docker plugin set docker plugin upgrade docker port docker ps docker pull docker push docker rename docker restart docker rm docker rmi docker run docker save docker search docker secret docker secret create docker secret inspect docker secret ls docker secret rm docker service docker service create docker service inspect docker service logs docker service ls docker service ps docker service rm docker service scale docker service update docker stack docker stack deploy docker stack ls docker stack ps docker stack rm docker stack services docker start docker stats docker stop docker swarm docker swarm ca docker swarm init docker swarm join docker swarm join-token docker swarm leave docker swarm unlock docker swarm unlock-key docker swarm update docker system docker system df docker system events docker system info docker system prune docker tag docker top docker unpause docker update docker version docker volume docker volume create docker volume inspect docker volume ls docker volume prune docker volume rm docker wait Use the Docker command line (Engine) Engine: Extend Access authorization plugin (Engine) Docker log driver plugins Docker network driver plugins (Engine) Extending Engine with plugins Managed plugin system (Engine) Plugin configuration (Engine) Plugins API (Engine) Volume plugins (Engine) Engine: Security AppArmor security profiles for Docker (Engine) Automation with content trust (Engine) Content trust in Docker (Engine) Delegations for content trust (Engine) Deploying Notary (Engine) Docker security (Engine) Docker security non-events (Engine) Isolate containers with a user namespace (Engine) Manage keys for content trust (Engine) Play in a content trust sandbox (Engine) Protect the Docker daemon socket (Engine) Seccomp security profiles for Docker (Engine) Secure Engine Use trusted images Using certificates for repository client verification (Engine) Engine: Tutorials Engine tutorials Network containers (Engine) Get Started Part 1: Orientation Part 2: Containers Part 3: Services Part 4: Swarms Part 5: Stacks Part 6: Deploy your app Machine Amazon Web Services (Machine) Digital Ocean (Machine) docker-machine active docker-machine config docker-machine create docker-machine env docker-machine help docker-machine inspect docker-machine ip docker-machine kill docker-machine ls docker-machine provision docker-machine regenerate-certs docker-machine restart docker-machine rm docker-machine scp docker-machine ssh docker-machine start docker-machine status docker-machine stop docker-machine upgrade docker-machine url Driver options and operating system defaults (Machine) Drivers overview (Machine) Exoscale (Machine) Generic (Machine) Get started with a local VM (Machine) Google Compute Engine (Machine) IBM Softlayer (Machine) Install Machine Machine Machine CLI overview Machine command-line completion Machine concepts and help Machine overview Microsoft Azure (Machine) Microsoft Hyper-V (Machine) Migrate from Boot2Docker to Machine OpenStack (Machine) Oracle VirtualBox (Machine) Provision AWS EC2 instances (Machine) Provision Digital Ocean Droplets (Machine) Provision hosts in the cloud (Machine) Rackspace (Machine) VMware Fusion (Machine) VMware vCloud Air (Machine) VMware vSphere (Machine) Notary Client configuration (Notary) Common Server and signer configurations (Notary) Getting started with Notary Notary changelog Notary configuration files Running a Notary service Server configuration (Notary) Signer configuration (Notary) Understand the service architecture (Notary) Use the Notary client
characters

描述

在新容器中運(yùn)行命令

用法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

選項(xiàng)

名字,簡(jiǎn)寫

默認(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寫入文件

--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)

--detach,-d

false

在后臺(tái)運(yùn)行容器并打印容器ID

--detach-keys


覆蓋分離容器的鍵序列

--device


將主機(jī)設(shè)備添加到容器

--device-cgroup-rule


將規(guī)則添加到cgroup允許的設(shè)備列表

--device-read-bps


限制設(shè)備的讀取速率(每秒字節(jié)數(shù))

--device-read-iops


限制設(shè)備的讀取速率(每秒IO)

-device-write-bps


限制寫入速率(每秒字節(jié)數(shù))到設(shè)備

--device-write-iops


限制寫入速率(每秒IO)到設(shè)備

--disable-content-trust

true

跳過圖像驗(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


公開一個(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ù)前,容器初始化的開始時(shí)間段(ms | s | m | h)(默認(rèn)為0)

--health-timeout

0

允許一次檢查運(yùn)行的最長(zhǎng)時(shí)間(ms | s | m | h)(默認(rèn)值為0)

--help

false

打印用法

--hostname,-h


容器主機(jī)名稱

--init

false

在容器中運(yùn)行一個(gè)轉(zhuǎn)發(fā)信號(hào)并收集進(jìn)程的init

---interactive, -i

false

即使沒有連接,也要保持STDIN打開

--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地址


容器MAC地址(例如,92:d0:c6:0a:29:33)

--memory, -m

0

內(nèi)存限制

--memory-reservation

0

內(nèi)存軟限制

--memory-swap

0

交換限制等于內(nèi)存加交換:'-1'以啟用無限交換

--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

false

禁用任何容器指定的HEALTHCHECK

--oom-kill-disable

false

禁用OOM殺手

--oom-score-adj

0

調(diào)整主機(jī)的OOM首選項(xiàng)(從-1000到1000)

--pid


要使用的PID名稱空間

--pids-limit

0

調(diào)整容器匹配限制(無限制地設(shè)置-1)

--privileged

false

給這個(gè)容器賦予擴(kuò)展權(quán)限

--publish,-p


將容器的端口發(fā)布到主機(jī)

--publish-all,-P

false

將所有暴露的端口發(fā)布到隨機(jī)端口

--read-only

false

將容器的根文件系統(tǒng)掛載為只讀

--read-only

no

重新啟動(dòng)策略以在容器退出時(shí)應(yīng)用

--restart

false

當(dāng)容器退出時(shí)自動(dòng)移除容器

--rm


運(yùn)行時(shí)用于此容器

--security-OPT


安全選項(xiàng)

--shm-size

0

/ dev / shm的大小

--sig-proxy

true

代理接收到進(jìn)程的信號(hào)

--stop-signal

SIGTERM

停止容器的信號(hào)

--stop-timeout

0

超時(shí)(以秒為單位)停止容器

--storage-OPT


容器的存儲(chǔ)驅(qū)動(dòng)程序選項(xiàng)

--sysctl

map[]

Sysctl選項(xiàng)

--tmpfs


掛載一個(gè)tmpfs目錄

--tty, -t

false

分配一個(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的基本命令。

擴(kuò)展描述

docker run命令首先在指定的映像上創(chuàng)建一個(gè)可寫容器層,然后使用指定的命令啟動(dòng)它。 也就是說,碼頭運(yùn)行等同于API / containers / create then / containers /(id)/ start。 使用docker start可以重新啟動(dòng)已停止的容器,并保持原來的所有更改不變。 請(qǐng)參閱docker ps -a查看所有容器的列表。

docker run命令可以在組合使用docker commit,以改變一個(gè)容器中運(yùn)行的命令。docker run在Docker運(yùn)行參考中還有其他詳細(xì)信息。

有關(guān)將容器連接到網(wǎng)絡(luò)的信息,請(qǐng)參閱“ Docker網(wǎng)絡(luò)概述 ”。

例子

分配名稱并分配偽TTY(-name,-it)

$ docker run --name test -it debian

root@d6c0fe130dba:/# exit 13$ echo $?13$ docker ps -a | grep test
d6c0fe130dba        debian:7            "/bin/bash"         26 seconds ago      Exited (13) 17 seconds ago                         test

這個(gè)例子使用debian:latest image運(yùn)行一個(gè)名為test的容器。 -it指示Docker分配連接到容器stdin的偽TTY; 在容器中創(chuàng)建一個(gè)交互式bash shell。 在該示例中,通過輸入exit 13退出bash shell。此退出代碼被傳遞給docker run的調(diào)用者,并記錄在測(cè)試容器的元數(shù)據(jù)中。

捕獲容器ID(-cidfile)

$ docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"

這將創(chuàng)建一個(gè)容器并打印測(cè)試到控制臺(tái)。 cidfile標(biāo)志使得Docker嘗試創(chuàng)建一個(gè)新文件并將容器ID寫入它。 如果文件已經(jīng)存在,Docker會(huì)返回一個(gè)錯(cuò)誤。 Docker運(yùn)行退出時(shí),Docker將關(guān)閉此文件。

完整的容器功能(-privileged)

$ docker run -t -i --rm ubuntu bash
root@bc338942ef20:/# mount -t tmpfs none /mnt
mount: permission denied

這是行不通的,因?yàn)槟J(rèn)情況下,大多數(shù)具有潛在危險(xiǎn)的內(nèi)核功能都被丟棄; 包括cap_sys_admin(這是安裝文件系統(tǒng)所必需的)。 但是, - 特權(quán)標(biāo)志將允許它運(yùn)行:

$ docker run -t -i --privileged ubuntu bash
root@50e3f57e16e6:/# mount -t tmpfs none /mnt
root@50e3f57e16e6:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
none            1.9G     0  1.9G   0% /mnt

--privileged標(biāo)志為容器提供了所有功能,并且還提升了devicecgroup控制器執(zhí)行的所有限制。換句話說,容器可以做主機(jī)可以做的幾乎所有事情。這個(gè)標(biāo)志存在允許特殊的用例,比如在Docker中運(yùn)行Docker。

設(shè)置工作目錄(-w)

$ docker  run -w /path/to/dir/ -i -t  ubuntu pwd

-w讓里面定目錄正在執(zhí)行的命令,如/path/to/dir/。如果路徑不存在,它將在容器內(nèi)創(chuàng)建。

為每個(gè)容器設(shè)置存儲(chǔ)驅(qū)動(dòng)器選項(xiàng)

$ docker run -it --storage-opt size=120G fedora /bin/bash

這個(gè)(大?。⒃试S在創(chuàng)建時(shí)將容器rootfs大小設(shè)置為120G。 此選項(xiàng)僅適用于devicemapper,btrfs,overlay2,windowsfilter和zfs圖形驅(qū)動(dòng)程序。 對(duì)于devicemapper,btrfs,windowsfilter和zfs圖形驅(qū)動(dòng)程序,用戶無法傳遞小于默認(rèn)基本大小的大小。 對(duì)于overlay2存儲(chǔ)驅(qū)動(dòng)程序,只有當(dāng)后備fs為xfs并使用pquota安裝選項(xiàng)安裝時(shí),size選項(xiàng)才可用。 在這些條件下,用戶可以通過任何小于支持fs大小的大小。

裝載tmpfs(-tmpfs)

$ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image

--tmpfs標(biāo)志將空tmpfs與rw,noexec,nosuid,size = 65536k選項(xiàng)一起裝載到容器中。

裝入卷(-v,只讀)

$ docker  run  -v `pwd`:`pwd` -w `pwd` -i -t  ubuntu pwd

-v標(biāo)志將當(dāng)前工作目錄掛載到容器中。 -w讓命令在當(dāng)前工作目錄內(nèi)執(zhí)行,方法是將目錄更改為由pwd返回的值。 所以這個(gè)組合使用容器執(zhí)行命令,但在當(dāng)前工作目錄中執(zhí)行。

$ docker run -v /doesnt/exist:/foo -w /foo -i -t ubuntu bash

當(dāng)綁定安裝卷的主機(jī)目錄不存在時(shí),Docker會(huì)自動(dòng)在主機(jī)上為您創(chuàng)建此目錄。在上面的例子中,Docker將/doesnt/exist在啟動(dòng)容器之前創(chuàng)建文件夾。

$ docker run --read-only -v /icanwrite busybox touch /icanwrite/here

體積可以與--read-only結(jié)合使用來控制容器寫入文件的位置。 -read-only標(biāo)志將容器的根文件系統(tǒng)裝載為只讀,禁止寫入容器指定體積以外的位置。

$ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh

通過綁定docker unix套接字和靜態(tài)鏈接的docker二進(jìn)制文件(請(qǐng)參閱獲取linux二進(jìn)制文件),您可以賦予容器完全訪問權(quán)限,以創(chuàng)建和操作主機(jī)的Docker守護(hù)進(jìn)程。

在Windows上,路徑必須使用Windows風(fēng)格的語義來指定。

PS C:\> docker run -v c:\foo:c:\dest microsoft/nanoserver cmd /s /c type c:\dest\somefile.txt
Contents of file

PS C:\> docker run -v c:\foo:d: microsoft/nanoserver cmd /s /c type d:\somefile.txt
Contents of file

使用基于Windows的容器時(shí),以下示例將失敗,因?yàn)槿萜鲀?nèi)的卷的目的地或綁定裝入必須是以下之一:不存在或空目錄; 或C:以外的驅(qū)動(dòng)器。此外,綁定掛載的源必須是本地目錄,而不是文件。

net use z: \\remotemachine\share
docker run -v z:\foo:c:\dest ...docker run -v \\uncpath\to\directory:c:\dest ...docker run -v c:\foo\somefile.txt:c:\dest ...docker run -v c:\foo:c: ...docker run -v c:\foo:c:\existing-directory-with-contents ...

有關(guān)體積的深入信息,請(qǐng)參閱管理容器中的數(shù)據(jù)

使用-mount標(biāo)志添加綁定掛載或卷

--mount標(biāo)志允許您tmpfs在容器中安裝卷,主機(jī)目錄和掛載。

--mount標(biāo)志支持-vor 標(biāo)志支持的大多數(shù)選項(xiàng)--volume,但使用不同的語法。有關(guān)的深度信息--mount的標(biāo)志,和之間的比較--volume--mount,請(qǐng)參考服務(wù)創(chuàng)建命令參考。

即使沒有計(jì)劃反對(duì)--volume,建議使用--mount

例子:

$ docker run --read-only --mount type=volume,target=/icanwrite busybox touch /icanwrite/here
$ docker run -t -i --mount type=bind,src=/data,dst=/data busybox sh

發(fā)布或公開端口(-p,-expose)

$ docker run -p 127.0.0.1:80:8080 ubuntu bash

這將容器的端口8080綁定到主機(jī)的127.0.0.1上的端口80。 Docker用戶指南詳細(xì)解釋了如何操作Docker中的端口。

$ docker run --expose 80 ubuntu bash

這暴露80容器的端口而不將端口發(fā)布到主機(jī)系統(tǒng)的接口。

設(shè)置環(huán)境變量(-e,-env,-env-file)

$ docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash

使用-e,--env--env-file標(biāo)志設(shè)置在容器簡(jiǎn)單(非數(shù)組)環(huán)境變量,你正在運(yùn)行,或覆蓋在你運(yùn)行圖像的Dockerfile中定義的變量。

您可以在運(yùn)行容器時(shí)定義變量及其值:

$ docker run --env VAR1=value1 --env VAR2=value2 ubuntu env | grep VAR
VAR1=value1
VAR2=value2

您也可以使用您已經(jīng)導(dǎo)出到本地環(huán)境的變量:

export VAR1=value1export VAR2=value2

$ docker run --env VAR1 --env VAR2 ubuntu env | grep VAR
VAR1=value1
VAR2=value2

在運(yùn)行該命令時(shí),Docker CLI客戶端將檢查變量在本地環(huán)境中的值并將其傳遞給容器。 如果提供了no =并且該變量未在本地環(huán)境中導(dǎo)出,則該變量將不會(huì)在容器中進(jìn)行設(shè)置。

您也可以從文件加載環(huán)境變量。該文件應(yīng)該使用語法<variable>=value(將變量設(shè)置為給定值)或<variable>(從本地環(huán)境獲取值)以及#注釋。

$ cat env.list
# This is a comment
VAR1=value1
VAR2=value2
USER

$ docker run --env-file env.list ubuntu env | grep VAR
VAR1=value1
VAR2=value2
USER=denis

在容器上設(shè)置元數(shù)據(jù)(-l,-label,-label-file)

標(biāo)簽是key=value將元數(shù)據(jù)應(yīng)用于容器的一對(duì)。用兩個(gè)標(biāo)簽標(biāo)注容器:

$ docker run -l my-label --label com.example.foo=bar ubuntu bash

my-label鍵不指定值,因此標(biāo)簽?zāi)J(rèn)為空字符串(“”)。 要添加多個(gè)標(biāo)簽,請(qǐng)重復(fù)標(biāo)簽標(biāo)志(-l或--label)。

key =值必須是唯一的,以避免覆蓋標(biāo)簽值。 如果您使用相同的鍵但指定了不同的值,則每個(gè)后續(xù)值都會(huì)覆蓋前一個(gè)值。 Docker使用您提供的最后一個(gè)key =值。

使用該--label-file標(biāo)志從文件加載多個(gè)標(biāo)簽。用EOL標(biāo)記分隔文件中的每個(gè)標(biāo)簽。下面的示例從當(dāng)前目錄中的標(biāo)簽文件加載標(biāo)簽:

$ docker run --label-file ./labels ubuntu bash

標(biāo)簽文件格式與加載環(huán)境變量的格式類似。(與環(huán)境變量不同,標(biāo)簽對(duì)容器內(nèi)運(yùn)行的進(jìn)程不可見。)以下示例說明了標(biāo)簽文件格式:

com.example.label1="a label"# this is a comment
com.example.label2=another\ label
com.example.label3

您可以通過提供多個(gè)--label-file標(biāo)志來加載多個(gè)標(biāo)簽文件。

有關(guān)使用標(biāo)簽的更多信息,請(qǐng)參閱Docker用戶指南中的標(biāo)簽 -  Docker中的自定義元數(shù)據(jù)。

將容器連接到網(wǎng)絡(luò)( - 網(wǎng)絡(luò))

在啟動(dòng)容器時(shí),使用--network標(biāo)志將其連接到網(wǎng)絡(luò)。 這將busybox容器添加到my-net網(wǎng)絡(luò)。

$ docker run -itd --network=my-net busybox

在用戶定義的網(wǎng)絡(luò)上啟動(dòng)容器時(shí),也可以使用--ip和--ip6標(biāo)志選擇容器的IP地址。

$ docker run -itd --network=my-net --ip=10.10.9.75 busybox

如果要將正在運(yùn)行的容器添加到網(wǎng)絡(luò),請(qǐng)使用docker network connect子命令。

您可以將多個(gè)容器連接到同一個(gè)網(wǎng)絡(luò)。一旦連接,容器可以很容易地通信,只需要另一個(gè)容器的IP地址或名稱。對(duì)于overlay支持多主機(jī)連接的網(wǎng)絡(luò)或自定義插件,連接到相同多主機(jī)網(wǎng)絡(luò)但從不同引擎啟動(dòng)的容器也可以通過這種方式進(jìn)行通信。

注意:服務(wù)發(fā)現(xiàn)在默認(rèn)網(wǎng)橋上不可用。容器默認(rèn)通過IP地址進(jìn)行通信。要通過名稱進(jìn)行交流,他們必須聯(lián)系起來。

您可以使用該docker network disconnect命令從網(wǎng)絡(luò)斷開容器。

從容器中裝入卷(-volumes-from)

$ docker run --volumes-from 777f7dc92da7 --volumes-from ba8c0c54f0f2:ro -i -t ubuntu pwd

--volumes-from標(biāo)志會(huì)從引用的容器中裝入所有定義的卷。 容器可以通過重復(fù)-volumes-from參數(shù)來指定。 容器ID可以選擇性地添加后綴:ro或:rw以分別將卷掛載到只讀或讀寫模式。 默認(rèn)情況下,卷以相同模式(讀寫或只讀)作為參考容器裝入。

像SELinux這樣的標(biāo)簽系統(tǒng)要求在安裝到容器中的卷內(nèi)容上放置正確的標(biāo)簽。如果沒有標(biāo)簽,安全系統(tǒng)可能會(huì)阻止容器內(nèi)運(yùn)行的進(jìn)程使用內(nèi)容。默認(rèn)情況下,Docker不會(huì)更改OS設(shè)置的標(biāo)簽。

要更改容器上下文中的標(biāo)簽,可以添加兩個(gè)后綴中的任意一個(gè):z或添加:Z到卷裝載。這些后綴告訴Docker重新標(biāo)記共享卷上的文件對(duì)象。該z選項(xiàng)告訴Docker兩個(gè)容器共享卷內(nèi)容。因此,Docker使用共享內(nèi)容標(biāo)簽來標(biāo)記內(nèi)容。共享卷標(biāo)允許所有容器讀取/寫入內(nèi)容。該Z選項(xiàng)告訴Docker使用私有非共享標(biāo)簽標(biāo)記內(nèi)容。只有當(dāng)前容器可以使用私人卷。

附加到STDIN / STDOUT / STDERR(-a)

-a標(biāo)志告訴碼頭運(yùn)行綁定到容器的STDIN,STDOUT或STDERR。 這可以根據(jù)需要操作輸出和輸入。

$ echo "test" | docker run -i -a stdin ubuntu cat -

這將數(shù)據(jù)通過管道傳輸?shù)饺萜髦?,并通過僅附加到容器的STDIN來打印容器的ID。

$ docker run -a stderr ubuntu echo test

這不會(huì)打印任何東西,除非出現(xiàn)錯(cuò)誤,因?yàn)槲覀冎桓郊拥饺萜鞯腟TDERR。 容器的日志仍然存儲(chǔ)了寫入STDERR和STDOUT的內(nèi)容。

$ cat somefile | docker run -i -a stdin mybuilder dobuild

這是如何將文件傳輸?shù)饺萜髦幸员銟?gòu)建的。構(gòu)建完成后將打印容器的ID,并可使用檢索構(gòu)建日志docker logs。如果您需要將文件或其他內(nèi)容傳輸?shù)饺萜髦?,并在容器運(yùn)行完畢后檢索容器的ID,這非常有用。

將主機(jī)設(shè)備添加到容器(-device)

$ docker run --device=/dev/sdc:/dev/xvdc \             --device=/dev/sdd --device=/dev/zero:/dev/nulo \             -i -t \
             ubuntu ls -l /dev/{xvdc,sdd,nulo}brw-rw---- 1 root disk 8, 2 Feb  9 16:05 /dev/xvdc
brw-rw---- 1 root disk 8, 3 Feb  9 16:05 /dev/sdd
crw-rw-rw- 1 root root 1, 5 Feb  9 16:05 /dev/nulo

通常需要將設(shè)備直接暴露于容器。 --device選項(xiàng)啟用該選項(xiàng)。 例如,一個(gè)特定的塊存儲(chǔ)設(shè)備或循環(huán)設(shè)備或音頻設(shè)備可以被添加到另一個(gè)沒有特權(quán)的容器(沒有 - - 特權(quán)標(biāo)志),并讓應(yīng)用程序直接訪問它。

默認(rèn)情況下,容器將能夠讀取,寫入和mknod這些設(shè)備。 這可以使用第三個(gè)覆蓋:每個(gè)設(shè)備標(biāo)志的rwm選項(xiàng)集:

$ docker run --device=/dev/sda:/dev/xvdc --rm -it ubuntu fdisk  /dev/xvdcCommand (m for help): q
$ docker run --device=/dev/sda:/dev/xvdc:r --rm -it ubuntu fdisk  /dev/xvdc
You will not be able to write the partition table.Command (m for help): q

$ docker run --device=/dev/sda:/dev/xvdc:rw --rm -it ubuntu fdisk  /dev/xvdcCommand (m for help): q

$ docker run --device=/dev/sda:/dev/xvdc:m --rm -it ubuntu fdisk  /dev/xvdc
fdisk: unable to open /dev/xvdc: Operation not permitted

注意: - 設(shè)備不能安全地用于臨時(shí)設(shè)備。 使用--device不能將不可用的塊設(shè)備添加到不受信任的容器中。

重新啟動(dòng)策略(-restart)

使用Docker's --restart來指定容器的重新啟動(dòng)策略。重新啟動(dòng)策略控制Docker守護(hù)程序在退出后是否重新啟動(dòng)容器。Docker支持以下重啟策略:

政策

結(jié)果

沒有

退出時(shí)不要自動(dòng)重啟容器。這是默認(rèn)設(shè)置。

失敗

僅在容器以非零退出狀態(tài)退出時(shí)才能重新啟動(dòng)?;蛘撸拗艱ocker守護(hù)程序嘗試重新啟動(dòng)的次數(shù)。

總是

不管退出狀態(tài)如何,始終重新啟動(dòng)容器。當(dāng)你總是指定時(shí),Docker守護(hù)進(jìn)程將嘗試無限期地重啟容器。無論容器的當(dāng)前狀態(tài)如何,容器也將始終在守護(hù)進(jìn)程啟動(dòng)時(shí)啟動(dòng)。

$ docker run --restart=always redis

這將運(yùn)行redis容器,其重啟策略始終如此,如果容器退出,Docker將重新啟動(dòng)它。

有關(guān)重新啟動(dòng)策略的更多詳細(xì)信息,請(qǐng)參閱Docker運(yùn)行參考頁的重新啟動(dòng)策略(-restart)部分。

將條目添加到容器主機(jī)文件(-add-host)

您可以使用一個(gè)或多個(gè)--add-host標(biāo)志將其他主機(jī)添加到容器的/ etc / hosts文件中。 本示例為名為docker的主機(jī)添加一個(gè)靜態(tài)地址:

$ docker run --add-host=docker:10.180.0.1 --rm -it debian

root@f38c87f2a42d:/# ping docker
PING docker (10.180.0.1): 48 data bytes56 bytes from 10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms56 bytes from 10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms^C--- docker ping statistics ---2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 7.600/19.152/30.705/11.553 ms

有時(shí)您需要從容器內(nèi)連接到Docker主機(jī)。 要啟用此功能,請(qǐng)使用--add-host標(biāo)志將Docker主機(jī)的IP地址傳遞給容器。 要查找主機(jī)地址,請(qǐng)使用ip addr show命令。

您傳遞的標(biāo)志ip addr show取決于您的容器中是使用IPv4還是IPv6網(wǎng)絡(luò)。使用以下標(biāo)志為名為以下內(nèi)容的網(wǎng)絡(luò)設(shè)備檢索IPv4地址eth0

$ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1`$ docker run  --add-host=docker:${HOSTIP} --rm -it debian

對(duì)于IPv6,使用-6標(biāo)志而不是-4標(biāo)志。 對(duì)于其他網(wǎng)絡(luò)設(shè)備,請(qǐng)將eth0替換為正確的設(shè)備名稱(例如橋設(shè)備的docker0)。

在容器中設(shè)置ulimits(-ulimit)

由于在容器中設(shè)置ulimit設(shè)置需要默認(rèn)容器中不具備的額外特權(quán),因此可以使用--ulimit標(biāo)志來設(shè)置它們。 --ulimit指定軟限制和硬限制,例如:<type>=<soft limit>[:<hard limit>],例如:

$ docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"1024

注意:如果您不提供硬限制,則軟限制將用于這兩個(gè)值。 如果沒有設(shè)置ulimits,它們將從守護(hù)程序中設(shè)置的默認(rèn)ulimits繼承。 因?yàn)楝F(xiàn)在選項(xiàng)被禁用。 換句話說,不支持以下腳本:

  $ docker run -it --ulimit as = 1024 fedora / bin / bash`

這些值syscall在設(shè)置時(shí)會(huì)發(fā)送到適當(dāng)?shù)奈恢谩ocker不執(zhí)行任何字節(jié)轉(zhuǎn)換。設(shè)置這些值時(shí)請(qǐng)考慮這一點(diǎn)。

對(duì)于nproc的用法

請(qǐng)小心使用ulimit標(biāo)志設(shè)置nproc,因?yàn)閚proc是由Linux設(shè)計(jì)的,用于設(shè)置用戶可用的最大進(jìn)程數(shù),而不是容器。 例如,使用守護(hù)進(jìn)程用戶啟動(dòng)四個(gè)容器:

$ docker run -d -u daemon --ulimit nproc=3 busybox top

$ docker run -d -u daemon --ulimit nproc=3 busybox top

$ docker run -d -u daemon --ulimit nproc=3 busybox top

$ docker run -d -u daemon --ulimit nproc=3 busybox top

第四個(gè)容器失敗并報(bào)告“8系統(tǒng)錯(cuò)誤:資源暫時(shí)不可用”錯(cuò)誤。 這會(huì)失敗,因?yàn)檎{(diào)用者將nproc設(shè)置為3,導(dǎo)致前三個(gè)容器使用為守護(hù)程序用戶設(shè)置的三個(gè)進(jìn)程配額。

停止帶有信號(hào)的容器(-stop-signal)

--stop-signal標(biāo)志設(shè)置將被發(fā)送到容器的系統(tǒng)呼叫信號(hào)以退出。這個(gè)信號(hào)可以是一個(gè)有效的無符號(hào)數(shù)字,與內(nèi)核syscall表中的位置相匹配,例如9,或者SIGNAME格式的信號(hào)名稱,例如SIGKILL。

可選的安全選項(xiàng)(-security-opt)

在Windows上,此標(biāo)志可用于指定credentialspec選項(xiàng)。 credentialspec必須采用格式file://spec.txt或registry:// keyname。

停止容器超時(shí)(-stop-timeout)

--stop-timeout標(biāo)志設(shè)置將發(fā)送給容器退出的預(yù)定義(請(qǐng)參閱 - 停止信號(hào))系統(tǒng)調(diào)用信號(hào)的超時(shí)(以秒為單位)。 超時(shí)后,容器將被SIGKILL殺死。

指定容器的隔離技術(shù)(隔離)

在Windows上運(yùn)行Docker容器的情況下,此選項(xiàng)很有用。該--isolation <value>選項(xiàng)設(shè)置容器的隔離技術(shù)。在Linux上,唯一支持的是default使用Linux命名空間的選項(xiàng)。這兩個(gè)命令在Linux上是等效的:

$ docker run -d busybox top
$ docker run -d --isolation default busybox top

在Windows上,--isolation可以采用以下值之一:

描述

默認(rèn)

使用Docker守護(hù)進(jìn)程的--exec-opt或系統(tǒng)默認(rèn)值(請(qǐng)參見下文)指定的值。

處理

共享內(nèi)核命名空間隔離(Windows客戶端操作系統(tǒng)不支持)。

Hyper-V的

基于Hyper-V管理程序分區(qū)的隔離。

Windows服務(wù)器操作系統(tǒng)上的默認(rèn)隔離是過程。 Windows客戶端操作系統(tǒng)上的默認(rèn)(且僅支持)隔離是hyperv。 嘗試使用--isolation過程在客戶端操作系統(tǒng)上啟動(dòng)容器將失敗。

在Windows服務(wù)器上,假設(shè)使用默認(rèn)配置,這些命令是等效的并導(dǎo)致進(jìn)程隔離:

PS C:\> docker run -d microsoft/nanoserver powershell echo process
PS C:\> docker run -d --isolation default microsoft/nanoserver powershell echo process
PS C:\> docker run -d --isolation process microsoft/nanoserver powershell echo process

如果您在Docker守護(hù)進(jìn)程上設(shè)置了--exec-opt isolation = hyperv選項(xiàng),或者針對(duì)基于Windows客戶端的守護(hù)進(jìn)程運(yùn)行,則這些命令是等效的,并導(dǎo)致超級(jí)隔離:

PS C:\> docker run -d microsoft/nanoserver powershell echo hyperv
PS C:\> docker run -d --isolation default microsoft/nanoserver powershell echo hyperv
PS C:\> docker run -d --isolation hyperv microsoft/nanoserver powershell echo hyperv

指定容器可用內(nèi)存的硬限制(-m,-memory)

這些參數(shù)始終設(shè)置容器可用內(nèi)存的上限。在Linux上,這是在cgroup上設(shè)置的,容器中的應(yīng)用程序可以通過查詢/sys/fs/cgroup/memory/memory.limit_in_bytes來查詢它。

在Windows上,這將根據(jù)使用的隔離類型對(duì)容器產(chǎn)生不同的影響。

  • 有了process隔離,Windows將報(bào)告主機(jī)系統(tǒng)的全部?jī)?nèi)存,而不是對(duì)容器docker運(yùn)行的應(yīng)用程序的限制運(yùn)行-it -m 2GB --isolation =進(jìn)程microsoft / nanoserver powershell Get-ComputerInfo *內(nèi)存* CsTotalPhysicalMemory:17064509440 CsPhyicallyInstalledMemory: 16777216 OsTotalVisibleMemorySize:16664560 OsFreePhysicalMemory:14646720 OsTotalVirtualMemorySize:19154928 OsFreeVirtualMemory:17197440 OsInUseVirtualMemory:1957488 OsMaxProcessMemorySize:137438953344

  • hyperv隔離的情況下,Windows將創(chuàng)建一個(gè)足夠容納內(nèi)存限制的實(shí)用程序虛擬機(jī),以及承載容器所需的最小操作系統(tǒng)。該大小報(bào)告為“總物理內(nèi)存”。docker run -it -m 2GB --isolation = hyperv microsoft / nanoserver powershell Get-ComputerInfo * memory * CsTotalPhysicalMemory:2683355136 CsPhyicallyInstalledMemory:OsTotalVisibleMemorySize:2620464 OsFreePhysicalMemory:2306552 OsTotalVirtualMemorySize:2620464 OsFreeVirtualMemory:2356692 OsInUseVirtualMemory:263772 OsMaxProcessMemorySize:137438953344

在運(yùn)行時(shí)配置名稱空間內(nèi)核參數(shù)(sysctl)

所述--sysctl容器中的命名空間的內(nèi)核參數(shù)(的sysctl)集。例如,要打開容器網(wǎng)絡(luò)名稱空間中的IP轉(zhuǎn)發(fā),請(qǐng)運(yùn)行以下命令:

$ docker run --sysctl net.ipv4.ip_forward=1 someimage

注意:并非所有sysctl都是命名空間。Docker不支持更改也修改主機(jī)系統(tǒng)的容器內(nèi)部的sysctls。隨著內(nèi)核的發(fā)展,我們期望看到更多的sysctl變成命名空間。

目前支持的sysctls

  • IPC Namespace:kernel.msgmax,kernel.msgmnb,kernel.msgmni,kernel.sem,kernel.shmall,kernel.shmmax,kernel.shmmni,kernel.shm_rmid_forced以fs.mqueue開頭的系統(tǒng)*如果使用這個(gè)--ipc=host選項(xiàng),這些sysctl將不會(huì)允許。

  • Network Namespace:以net開頭的Sysctls *如果--network=host使用這些sysctl 的選項(xiàng)將不被允許。

Previous article: Next article: