Docker之容器和鏡像

1. Docker是什麼?

1.1 Docker簡介

Docker是一個能把開發的應用程序自動部署到容器的開源引擎。docker

1.2 Docker組件
  • Docker引擎(Docker的客戶端和服務器)
  • Docker鏡像
  • Registry
  • Docker容器
1.3 Docker的安裝

Docker能夠部署在Ubuntu、Centos等宿主機中。在Centos7中使用如下命令安裝:ubuntu

#安裝Docker,-y參數表示answer yes for all questions,
sudo yum install -y docker
#啓動Docker
sudo systemctl start docker
#查看docker是否運行正常
docker info

2.Docker鏡像

2.1 什麼是Docker鏡像?

Docker鏡像是由文件系統疊加而成的。segmentfault

2.2 列出鏡像
#列出所有鏡像
docker images

#列出指定的鏡像
docker images 鏡像名稱
2.3 拉取鏡像

拉取鏡像時會先在本地查找,若是本地沒有,就會去Docker Hub下載該鏡像。Docker Hub具備兩種類型的倉庫,一種是用戶倉庫,由Docker用戶建立;另外一種是頂層倉庫,由Docker內部人員管理。bash

#例如:docker pull fedora:20
docker pull 鏡像名稱:標籤
2.4 查找鏡像
#查找Docker Hub上的公共可用鏡像
docker search 鏡像名稱
2.5 建立鏡像

(1)使用docker commit命令服務器

#docker commit提交的是建立容器的鏡像與容器當前狀態之間的差異。
docker commit 容器ID 用戶名/倉庫名

(2)使用Dockerfile建立rest

https://segmentfault.com/a/11...日誌

刪除鏡像
docker rm 鏡像名稱
3. Docker容器
3.1 建立容器

在建立一個容器時,docker會構建出一個鏡像棧,在棧的最頂端添加一個讀寫層。這個讀寫層再加上其下面的鏡像層以及一些配置數據,就構成了一個容器。code

a.建立交互式容器教程

#-i:保證容器的STDIN是開啓的。
#-t:表示docker會爲建立的容器開啓一個僞tty終端。
#ubuntu:以ubuntu爲基礎鏡像構建新的鏡像。docker會先檢查本地是否存在ubuntu鏡像,若是不存在就到Docker Hub Registry找。
#--name 指定容器的名稱,若是不指定,docker會隨機生成一個名字。
#/bin/bash:容器建立完成以後,會執行/bin/bash命令。
docker run -t -i --name container_name ubuntu /bin/bash

b.建立長期運行的容器開發

#-d:docker會把容器放到後臺運行。
docker run -d --name container_name ubuntu
3.2 查看容器
#列出正在運行的容器
docker ps

#列出最後一個運行的容器
docker ps -l

#列出所有容器5
docker ps -a

#返回指定容器的配置信息
docker inspect 容器名稱
3.3 重啓容器

容器從新啓動的時候會按照docker run的命令的參數運行。另外,使用docker restart命令能夠從新啓動一個容器。使用docker create命令能夠建立一個容器可是不運行。

#指定容器名稱重啓容器
docker start 容器名稱

#指定容器ID重啓容器
docker start 容器ID
3.4 附着在容器上
#附着到指定容器ID的容器上
docker attach 容器ID

#附着到指定容器名稱的容器上
docker attach 容器名稱
3.5 查看日誌
#查看指定容器的日誌
docker logs 容器名稱

#跟蹤指定容器的日誌
docker logs -f 容器名稱

#列出指定容器的日誌的最後10行
docker logs --tail 10 容器名稱

#
docker logs --tail 0 -f 容器名稱

#容器的日誌加上時間戳
docker logs -t 容器名稱

#將日誌輸出重定向到syslog。
docker run --log-driver="syslog" --name 容器名稱 -d ubuntu
3.6 刪除容器
#刪除指定容器
docker rm 容器ID

3.參考材料

Docker中文教程

《第一本Docker書》

相關文章
相關標籤/搜索