Docker命令大全


docker的使用命令

1 docker 命令介紹

docker --help

請叫我頭頭哥_docker命令大全

管理命令:

  container   管理容器

  image       管理鏡像

  network     管理網絡

命令:

  attach      介入到一個正在運行的容器

  build       根據 Dockerfile 構建一個鏡像

  commit      根據容器的更改創建一個新的鏡像

  cp          在本地文件系統與容器中復制 文件/文件夾

  create      創建一個新容器

  exec        在容器中執行一條命令

  images      列出鏡像

  kill        殺死一個或多個正在運行的容器    

  logs        取得容器的日志

  pause       暫停一個或多個容器的所有進程

  ps          列出所有容器

  pull        拉取一個鏡像或倉庫到 registry

  push        推送一個鏡像或倉庫到 registry

  rename      重命名一個容器

  restart     重新啟動一個或多個容器

  rm          刪除一個或多個容器

  rmi         刪除一個或多個鏡像

  run         在一個新的容器中執行一條命令

  search      在 Docker Hub 中搜索鏡像

  start       啟動一個或多個已經停止運行的容器

  stats       顯示一個容器的實時資源占用

  stop        停止一個或多個正在運行的容器

  tag         為鏡像創建一個新的標簽

  top         顯示一個容器內的所有進程

  unpause     恢復一個或多個容器內所有被暫停的進程

2. 更詳細的功能參數配置

參數

解釋

--api-enable-cors=false

開放遠程API調用的 CORS 頭信息。這個接口開關對想進行二次開

發的上層應用提供了支持.

-b, --bridge=""

掛載已經存在的網橋設備到 Docker 容器里。注意,使用 none

可以停用容器里的網絡.

--bip=""

使用 CIDR 地址來設定網絡橋的 IP。注意,此參數和 -b 不能一起使用.

-D, --debug=false

開啟Debug模式。例如:docker -d -D

-d, --daemon=false

開啟Daemon模式.

--dns=[]

強制容器使用DNS服務器.例如: docker -d --dns 8.8.8.8

--dns-search=[]

強制容器使用指定的DNS搜索域名.例如: docker -d --dns-search

example.com

-e, --exec-driver="native"

強制容器使用指定的運行時驅動.例如:docker -d -e lxc

-G, --group="docker"

在后台運行模式下,賦予指定的Group到相應的unix socket上。

注意,當此參數 --group 賦予空字符串時,將去除組信息。

-g, --graph="/var/lib/docker"

配置Docker運行時根目錄

-H, --host=[]

在后台模式下指定socket綁定,可以綁定一個或多個

 tcp://host:port, unix:///path/to/socket, fd://* 或

 fd://socketfd。例如:$ docker -H tcp://0.0.0.0:2375 ps

或者 $ export DOCKER_HOST="tcp://0.0.0.0:2375" $ docker ps

--icc=true

啟用內聯容器的通信.

--ip="0.0.0.0"

容器綁定IP時使用的默認IP地址.

--ip-forward=true

啟動容器的 net.ipv4.ip_forward.

--iptables=true

啟動Docker容器自定義的iptable規則.

--mtu=0

設置容器網絡的MTU值,如果沒有這個參數,選用默認 route MTU,

如果沒有默認route,就設置成常量值 1500.

-p, --pidfile="/var/run/docker.pid"

后台進程PID文件路徑.

-r, --restart=true

重啟之前運行中的容器.

-s, --storage-driver=""

強制容器運行時使用指定的存儲驅動,例如,指定使用devicemapper,

可以這樣:docker -d -s devicemapper

--selinux-enabled=false

啟用selinux支持

--storage-opt=[]

配置存儲驅動的參數

--tls=false

啟動TLS認證開關

--tlscacert="/Users/dxiao/.docker/ca.pem"

通過CA認證過的的certificate文件路徑

--tlscert="/Users/dxiao/.docker/cert.pem"

TLS的certificate文件路徑

--tlskey="/Users/dxiao/.docker/key.pem"

TLS的key文件路徑

--tlsverify=false

使用TLS並做后台進程與客戶端通訊的驗證

-v, --version=false

顯示版本信息

 

*注意:其中帶有[] 的啟動參數可以指定多次,例如

docker run -a stdin -a stdout -a stderr -i -t ubuntu /bin/bash

docker基本

· 查看系統內核

·  uname -r

· 啟動docker 境像

· systemctl start docker

· 3.查看docker版本

· docker verison

· 4.顯示docker系統的信息

· docker info

操作docker鏡像

1.檢索image

docker search image-name

2.下載image

docker pull image-name

3.列出鏡像列表

docker images

4.刪除一個或者多個鏡像

docker rmi image-name

5.顯示一個鏡像的歷史

docker history image-name  

6.通過容器創建鏡像

*從已經創建的容器中更新鏡像,並且提交這個鏡像 *使用 Dockerfile 指令來創建一個新的鏡像 下面通過已存在的容器創建一個新的鏡像。

docker commit -m="First Image" -a="keke" 7a15f99695c0 keke/unbantu:17.10.0

上面命令參數說明:

* -m 提交的描述信息

* -a 指定鏡像作者

* 7a15f99695c0 記住這個是容器id,不是鏡像id

* keke/unbantu:17.10.0 創建的目標鏡像名

1. 在Docker 注冊賬戶,發布的鏡像都在這個頁面里展示

2. 將上面做的鏡像unbantu,起個新的名字unbantu-test

docker tag keke/unbantu:17.10.0 keke/unbantu-test:lastest

1. 登錄docker

docker login

4.上傳unbantu鏡像

docker push keke/unbantu-test:lastest

啟動容器

docker容器可以理解為在沙盒中運行的進程。這個沙盒包含了該進程運行所必須的資源,包括文件系統、系統類庫、shell 環境等等。但這個沙盒默認是不會運行任何程序的。你需要在沙盒中運行一個進程來啟動某一個容器。這個進程是該容器的唯一進程,所以當該進程結束的時候,容器也會完全的停止。

1.在容器中安裝新的程序

docker run image-name apt-get install -y -name

2.在容器中運行"echo"命令,輸出"hello word"

docker run image-name echo "hello word"

3.交互式進入容器中

docker run -i -t image_name /bin/bash  

注意:在執行apt-get 命令的時候,要帶上-y參數。如果不指定-y參數的話,apt-get命令會進入交互模式,需要用戶輸入命令來進行確認,但在docker環境中是無法響應這種交互的。apt-get 命令執行完畢之后,容器就會停止,但對容器的改動不會丟失.

查看容器

1.列出當前所有正在運行的container

docker ps

2.列出所有的container

docker ps -a  

3.列出最近一次啟動的container

docker ps -l  

4.保存對容器的修改 當你對某一個容器做了修改之后(通過在容器中運行某一個命令),可以把對容器的修改保存下來,這樣下次可以從保存后的最新狀態運行該容器。

1.保存對容器的修改; -a, --author="" Author; -m, --message="" Commit message

docker commit ID new-image-name

5.操作容器

1.刪除所有容器

docker rm `docker ps -a -q`

2.刪除單個容器; -f, --force=false; -l, --link=false Remove the specified link and not the underlying container; -v, --volumes=false Remove the volumes associated to the container

docker rm Name/ID

3.停止、啟動、殺死一個容器

docker stop Name/ID  

docker start Name/ID  

docker kill Name/ID

4.從一個容器中取日志; -f, --follow=false Follow log output; -t, --timestamps=false Show timestamps

docker logs Name/ID  

5.列出一個容器里面被改變的文件或者目錄,list列表會顯示出三種事件,A 增加的,D 刪除的,C 被改變的

docker diff Name/ID

6.顯示一個運行的容器里面的進程信息

docker top Name/ID  

7.從容器里面拷貝文件/目錄到本地一個路徑

docker cp Name:/container-path to-path  

docker cp ID:/container-path to-path

8.重啟一個正在運行的容器; -t, --time=10 Number of seconds to try to stop for before killing the container, Default=10

docker restart Name/ID

9.附加到一個運行的容器上面; --no-stdin=false Do not attach stdin; --sig-proxy=true Proxify all received signal to the process

docker attach ID #重新啟動並運行一個交互式會話shell

注意:attach命令允許你查看或者影響一個運行的容器。你可以在同一時間attach同一個容器。你也可以從一個容器中脫離出來,是從CTRL-C.

保存和加載鏡像

當需要把一台機器上的鏡像遷移到另一台機器的時候,需要保存鏡像與加載鏡像。

1.保存鏡像到一個tar包; -o, --output="" Write to an file

docker save image-name -o file-path

2.加載一個tar包格式的鏡像; -i, --input="" Read from a tar archive file

docker load -i file-path

3.從機器A拷貝到機器B

docker save image-name > /home/keke/main.tar

*使用scp將main.tar拷到機器A上:

docker load < /home/keke/main.tar

登錄

1.登陸registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Username

docker login

發布docker鏡像

docker push new-image-name

構建鏡像(Dockerfile + docker build)

FROM ...

RUN ...

# 指定容器內的程序將會使用容器的指定端口

# 配合 docker run -p

EXPOSE ...

· RUN: 指定鏡像被構建時要運行的命令

· CMD: 指定容器被啟動時要運行的命令

· ENTRYPOINT: 同 CMD ,但不會被 docker run -t 覆蓋

· WORKDIR: CMD/ENTRYPOINT 會在這個目錄下執行

· VOLUME

· ADD

· COPY

docker history images-name

1.從新鏡像啟動容器

docker run -d -p 4000:80 --name [name] #可以在 Dokcer 宿主機上指定一個具體的端口映射到容器的80端口上

守護容器

docker run -d container-name #創建守護容器

docker top container-name #查看容器內進程

docker exec container-name touch a.txt #在容器內部運行進程

docker stop container-name #停止容器

關於docker

覺得此文章不錯可以給我star! 如果還有遇到問題可以加我微信Sen0676備注下來自github,進go實戰群詳細交流!

參考資料

官方英文資源

· Docker官網:http://www.docker.com

· Docker windows入門:https://docs.docker.com/windows/

· Docker Linux 入門:https://docs.docker.com/linux/

· Docker mac 入門:https://docs.docker.com/mac/

· Docker 用戶指引:https://docs.docker.com/engine/userguide/

· Docker 官方博客:http://blog.docker.com/

· Docker Hub: https://hub.docker.com/

· Docker開源: https://www.docker.com/open-source

中文資源

· Docker中文網站:http://www.docker.org.cn

· Docker w3cschool:https://www.w3cschool.cn/docker/docker-command-manual.html

· Docker中文文檔:http://www.dockerinfo.net/document

· Docker安裝手冊:http://www.docker.org.cn/book/install.html

· 一小時Docker教程 :https://blog.csphere.cn/archives/22

· Docker中文指南:http://www.widuu.com/chinese_docker/index.html

其它資源

· Docker 快速手冊!

· Docker 教程

· MySQL Docker 單一機器上如何配置自動備份

· https://segmentfault.com/t/docker

· https://github.com/docker/docker

· https://wiki.openstack.org/wiki/Docker

· https://wiki.archlinux.org/index.php/Docker


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM