docker常用指令詳解

指令詳解

從遠程倉庫拉取鏡像

//docker image pull library/hello-world默認從library拉取可以省略
docker image pull hello-world

查看鏡像列表

docker image ls

運行一個docker的鏡像,產生一個容器實例

//運行
docker run hello-world
//echo會在shell打印一段文字,起提示作用
Hello world
  • 檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
  • 利用鏡像創建並啓動一個容器
  • 分配一個文件系統,並在只讀的鏡像層外面掛載一層可讀寫層
  • 從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去
  • 從地址池配置一個 ip 地址給容器
  • 執行用戶指定的應用程序
  • 執行完畢後容器被終止

查看容器

// 列出本機正在運行的容器
docker container ls
// 列出本機所有容器,包括終止運行的容器
docker container ls --all

啓動一個可交互的容器

docker run -t -i ubuntu:14.04 /bin/bash
  • docker run 命令,並啓動名稱爲ubuntu:14.04的容器 。
  • -t 表示在新容器內指定一個僞終端或終端
  • -i表示允許我們對容器內的 (STDIN) 進行交互。
  • 可以將-t -i縮減爲-it好記
  • 我們在容器內還指定了一個新的命令: /bin/bash 。這將在容器內啓動 bash shell,這是一個交互程序
  • 注意":"後面爲TAG,如果沒有指定默認就爲latest

所以當容器(container)啓動之後,我們會獲取到一個命令提示符:

root@af8bae53bdd3:/#

這代表我們已經進入了容器內部

啓動守護進程,後臺一直運行容器

docker run -d ubuntu:14.04
//注意-d和-it同時使用,-it會無效,-d需要返回一個容器id

端口映射,掛載數據卷,命名容器

docker run -d --name=ant_web_pro -v /宿主機絕對路徑:/容器內目錄 -p docker外部端口:docker內部端口 nginx
  • -P: 隨機端口映射,容器內部端口隨機映射到主機的高端口
  • -p: 指定端口映射,格式爲:主機(宿主)端口:容器端口
  • --name="nginx-lb": 爲容器指定一個名稱;
  • --volume , -v: 綁定一個卷
  • 如果是容器裏的目錄不存在,兩者都會自動創建
  • -v $PWD/目錄:/容器內目錄 $PWD表示當前文件夾
  • 當你在容器容器內部改變數據卷是其實軟連接到了外部,數據直接在宿主機改變

查看數據卷

docker volume ls

啓動已終止的容器

容器可以通過run新建一個來運行,也可以重新start已經停止的container,但start不能夠再指定容器啓動時運行的指令,因爲docker只能有一個前臺進程。
容器stop(或Ctrl+D)時,會在保存當前容器的狀態之後退出,下次start時保有上次關閉時更改。而且每次進入attach進去的界面是一樣的,與第一次run啓動或commit提交的時刻相同。

docker start $CONTAINER_ID
docker stop $CONTAINER_ID
docker restart $CONTAINER_ID

退出容器

exit

進入容器

docker exec -it ant-design-pro_web /bin/bash
//docker exec -it 64b9ded82141 bash (可以是id) 

刪除一個或多個container、image(rm、rmi)

// 刪除容器
docker rm <container_id/contaner_name>

// 刪除所有停止的容器
docker rm $(docker ps -a -q)

// 刪除鏡像
docker rmi <image_id/image_name ...>

commit 容器,創建新鏡像

我們期望能定製自己的鏡像,在裏面安裝一些基礎環境(比如上文中的 node),然後製作出自己要的基礎鏡像。

 docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 
  • -a :提交的鏡像作者;
  • -c :使用Dockerfile指令來創建鏡像;
  • -m :提交時的說明文字;
  • -p :在commit時,將容器暫停。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章