docker的基本命令

2021-09-26 21:52:27 字數 3387 閱讀 3282

docker pull [選項] [docker registry 位址[:埠號]/]倉庫名[:標籤]

例:docker pull ubuntu:16.04

docker run -it --rm  \

ubuntu:16.04 \

bash

docker run 就是執行容器的命令。

-i:互動操作,-t:終端

--rm:容器推出後將其刪除

ubuntu:16.04 指用ubuntu:16.04映象作為基礎啟動容器

bash :放在映象名後的是命令,這裡我們希望有個互動式 shell,因此用的是bash

docker image ls命令

列表包括倉庫名、標籤、映象id、建立時間、所占用的空間。

docker    image     ls     -f    dangling=true

一般來說,虛懸映象已經失去了存在的價值,可以隨意刪除,可以用下面的命令刪除

docker image prune

用id刪除映象,一般取前3個字元以上,只要有區別於別的映象就可以

docker image rm 501

docker image rm centos

#刪除所有未執行的容器(已經執行的刪除不了,未執行的就一起被刪除了)

sudo docker rm $(sudo docker ps -a -q)

以命令列方式啟動docker容器,並在退出時自動刪除,使用bash作為當前shell

docker run -it --rm org.pzy/base_os:1.0 /bin/bash

像其它可以承接多個實體的命令一樣,可以使用docker      image     ls     -q來配合使用docker image   rm   ,這樣可以成批的刪除希望刪除的映象。

例如,要刪除所有倉庫名為redis的映象

docker image rm $(docker image ls -q redis)

或者刪除所以在mongo:3.2之前的映象:

docker image rm $(docker image ls -q -f before=mongo:3.2)

以定製nginx映象為例,這次我們使用dockerfiel來定製

mkdir mynginx

cd mynginx

touch dockerfile

其內容為:

from nginx

run echo 『』 >/usr/share/nginx/html/index.html

注:run 執行的的一般放在一行

在dockerfile檔案所在目錄執行:docker build -t nginx:v3 .

copy     《源路徑》...   《目標路徑》

copy     ["《源路徑1>",...   "《目標路徑》"]    

add可以複製並解壓檔案,如果不解壓就不能使用add了。

cmd指令與run相似,也用兩種格式

①shell格式:      cmd      《命令》

②exec格式:    cmd      ["可執行檔案",      "引數1", "引數2"...]

如果使用shell格式的話,實際的命令會被包裝為sh -c的引數進行執行。比如:

cmd      echo       $home

在實際執行中,會將其變更為:

cmd      [      "sh", "-c", "echo     $home" ]

entrypoint 的格式和run指令格式一樣,分為exec 格式和shell格式

當指定了entrypoint後,cmd的含義就發生了改變,不在是直接的執行其命令,而是將cmd的內容作為引數傳給entrypoint指令,將變為:""

場景一:讓映象變成像命令一樣使用

假設我們需要乙個得知自己當前公網ip的映象,那麼可以先用cmd來實現:

from    ubuntu:16.04

run apt-get update\                      

&& apt-get  install     -y    curl \                          

&& rm   -rf   /var/lib/apt/lists/*

cmd      [      "curl",     "-s", "" ]

格式有兩種:

env

env =…

這個指令很簡單,就是設定環境變數而已,無論是後面的其他指令,如run,還是執行時的應用,都可以直接使用這裡定義的環境變數。

例如:env version=1.0 debug=on \

下列指令可以支援環境變數展開:

add  copy   env  expose   label  user  workdir  volume stopsignal   onbuild

一些必要的命令:

例如:使用docker映象nginx建立乙個容器,並將容器命名為my-runoob

docker create --name myrunoob nginx

-d :分離模式,在後台執行

-i  :即使沒有附加也保持stidin開啟

-t  :分配乙個偽終端

例如:在容器 mynginx中以互動模式執行容器內/root/runoob.sh指令碼

docker exec -it mynginx /bin/sh /root/runoob.sh

在容器mynginx中開啟乙個互動的終端

docker exec -i -t mynginx /bin/bash

例如:上傳本地映象myapache到映象倉庫中

docker push myapache

例如:使用當前目錄的dockerfile建立映象,標籤為 runoob/ubuntu:v1

docker build -t runoob/ubuntu:v1 .

例如:使用url github.com/creack/docker-firefox 的 dockerfile 建立映象

例如:也可以通過-f dockerfile 檔案的位置

docker build -f /path/to/a/dockerfile .

docker start :

啟動乙個或多個已經被停止的容器

docker stop :

停止乙個執行中的容器

docker restart :

重啟容器

-f:通過sigkill訊號強制刪除乙個執行的容器 -l

:一處容器間的網路連線,而非容器本身 -v

:刪除與容器關聯的卷

docker基本命令

最近開發中用到docker,就順便了解了一下整合知識,後期再做補充 檢視docker所有容器 docker ps a 檢視正在執行的docker容器 docker ps 啟動docker容器 docker start container 暫停docker容器 docker stop containe...

Docker基本命令

docker v檢視docker版本 docker search 映象名 例docker search redis搜尋映象 docker pull 映象名 例docker pull redis docker images檢視本地映象列表 docker rmi image id刪除指定映象 刪除映象的...

docker基本命令

檢視程序 docker ps結束docker程序 強制關閉容器 docker kill psname 或者使用容器id優雅的關閉容器 docker container stop containerid檢視docker中的映象 docker image ls檢視docker容器 1 正在執行的 doc...