Docker run 命令
Docker run 命令
docker run :建立一個新的容器並執行一個命令
語法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS說明:
-a stdin: 指定標準輸入輸出內容型別,可選 STDIN/STDOUT/STDERR 三項;
-d: 後臺執行容器,並返回容器ID;
-i: 以互動模式執行容器,通常與 -t 同時使用;
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
--name="nginx-lb": 為容器指定一個名稱;
--dns 8.8.8.8: 指定容器使用的DNS伺服器,預設和宿主一致;
--dns-search example.com: 指定容器DNS搜尋域名,預設和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 設定環境變數;
--env-file=[]: 從指定檔案讀入環境變數;
--cpuset="0-2" or --cpuset="0,1,2": 繫結容器到指定CPU執行;
-m :設定容器使用記憶體最大值;
--net="bridge": 指定容器的網路連線型別,支援 bridge/host/none/container: 四種型別;
--link=[]: 新增連結到另一個容器;
--expose=[]: 開放一個埠或一組埠;
例項
使用docker映象nginx:latest以後臺模式啟動一個容器,並將容器命名為mynginx。
docker run --name mynginx -d nginx:latest
使用映象nginx:latest以後臺模式啟動一個容器,並將容器的80埠對映到主機隨機埠。
docker run -P -d nginx:latest
使用映象nginx:latest以後臺模式啟動一個容器,將容器的80埠對映到主機的80埠,主機的目錄/data對映到容器的/data。
docker run -p 80:80 -v /data:/data -d nginx:latest
使用映象nginx:latest以互動模式啟動一個容器,在容器內執行/bin/bash命令。
runoob@runoob:~$ docker run -it nginx:latest /bin/bash root@b8573233d675:/#
外部訪問docker容器(docker run -p/-P 指令)
容器中可以執行一些網路應用,要讓外部也可以訪問這些應用,可以通過 -P
(大寫) 或 -p
(小寫) 引數來指定埠對映。
(1)當使用 -P 標記時,Docker 會隨機對映一個 49000~49900
的埠到內部容器開放的網路埠。
使用 docker ps
可以看到,本地主機的 49155 被對映到了容器的 5000 埠。此時訪問本機的 49155 埠即可訪問容器內 web 應用提供的介面。
$ sudo docker run -d -P training/webapp python app.py
$ sudo docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse
同樣的,可以通過 docker logs
命令來檢視應用的資訊。
$ sudo docker logs -f nostalgic_morse
* Running on http://0.0.0.0:5000/
10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 -
10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 -
(2)-p(小寫)則可以指定要對映的IP和埠,但是在一個指定埠上只可以繫結一個容器。支援的格式有 hostPort:containerPort
、ip:hostPort:containerPort
、 ip::containerPort
。
hostPort:containerPort
(對映所有介面地址)
將本地的 5000 埠對映到容器的 5000 埠,可以執行如下命令:$ sudo docker run -d -p 5000:5000 training/webapp python app.py
此時預設會繫結本地所有介面上的所有地址。ip:hostPort:containerPort
(對映指定地址的指定埠)
指定對映使用一個特定地址,比如 localhost 地址 127.0.0.1$ sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
ip::containerPort
(對映指定地址的任意埠)
繫結 localhost 的任意埠到容器的 5000 埠,本地主機會自動分配一個埠。sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py
還可以使用 udp 標記來指定 udp 埠$ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
檢視對映埠配置
使用 docker port 來檢視當前對映的埠配置,也可以檢視到繫結的地址
$ docker port nostalgic_morse 5000
127.0.0.1:49155.
注意:
- 容器有自己的內部網路和 ip 地址(使用 docker inspect 可以獲取所有的變數,Docker 還可以有一個可變的網路配置。)
- -p 標記可以多次使用來繫結多個埠
例如
$ sudo docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py
原文連結:https://yeasy.gitbooks.io/docker_practice/content/network/port_mapping.html
相關文章
- 如何檢視docker run啟動引數命令Docker
- Docker執行命令報錯:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?Docker
- Run 流程和 Docker 原理Docker
- docker run 總是退出Docker
- docker的/var/run/docker.sock引數Docker
- 關於/var/run/docker.sockDocker
- (踩坑記錄)關於docker run命令啟動elasticsearch自動退出問題DockerElasticsearch
- docker run 與docker start的區別,為容器命名Docker
- docker(一):Develop faster. Run anywhere.DockerdevAST
- Docker run OGG Classic Architecture container from CIFS with docker-volume-netshDockerAI
- unix /var/run/docker.sock: connect: permission deniedDocker
- 執行docker run所遇到的問題Docker
- docker container run 背後發生了什麼?DockerAI
- 安裝docker問題:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?Docker
- Docker 命令Docker
- Docker命令Docker
- Docker_Docker命令2Docker
- docker run命令指定GPU多個顯示卡不生效的問題解決和程式碼示例DockerGPU
- docker階段03 docker容器內hosts檔案, DNS, 查docker空間佔用, 部署自動化運維平臺spug, 檢視docker run啟動引數命令DockerDNS運維
- Dockerfile小記之使用RUN命令需要注意Docker
- docker tag命令Docker
- docker 命令大全Docker
- 常用docker命令Docker
- docker命令大全Docker
- Docker create命令Docker
- docker命令(下)Docker
- 從已執行容器獲取 docker run 引數Docker
- Docker(三)Docker常用命令Docker
- Docker 入門系列一:docker 命令Docker
- docker常用命令 命令解釋 docker基礎理解Docker
- docker基本命令Docker
- 常用的docker命令Docker
- Docker常見命令Docker
- docker 命令記錄Docker
- docker命令總結Docker
- Docker 操作命令大全Docker
- Docker常用的命令Docker
- Docker執行命令Docker