image鏡像
Definition of: image
Docker images are the basis of containers. An Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime. An image typically contains a union of layered filesystems stacked on top of each other. An image does not have state and it never changes
引用docker官網的定義,大意是:
docker images是container的基礎。鏡像定義了容器運行所需要的文件和參數。鏡像沒有狀態也不會改變。
下載鏡像
<!--tag表示版本-->
docker pull 鏡像名:tag
查看鏡像
docker iamges
刪除鏡像
<!-- -f強制刪除-->
docker image rm -f 鏡像id或者鏡像名:tag
container容器
Definition of: container
A container is a runtime instance of a docker image.
A Docker container consists of
- A Docker image
- An execution environment
- A standard set of instructions
The concept is borrowed from Shipping Containers, which define a standard to ship goods globally. Docker defines a standard to ship software.
引用docker官網的定義,大意是:
容器是鏡像的一個運行實例。由鏡像、運行環境、指令集組成。
ps:鏡像和容器的關系,就像類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。一個鏡像可以啟動多個容器,啟動一次鏡像就是創建一個容器,每個容器都是一個隔離環境,不會相互影響。
基於鏡像新建一個容器並啟動
docker run --name 容器名 -i -t -p 主機端口:容器端口 -d -v 主機目錄:容器目錄:ro 鏡像id或鏡像名:TAG
# --name 指定容器名,可自定義,不指定自動命名
# -i 以交互模式運行容器
# -t 分配一個偽終端,即命令行,通常與-i組合來使用
# -p 指定映射端口,將主機端口映射到容器內的端口
# -d 后台運行容器
# -v 指定掛載主機目錄到容器目錄,默認為rw讀寫模式,ro表示只讀
查看容器
docker ps -a -q
docker container ls -a -q
# -a 查看所有容器,包含運行中、未運行的
# -q 只查看容器id
啟動、停止、重啟、刪除
# 啟動
docker start 容器id
# 停止
docker stop 容器id
# 重啟
dockers start 容器id
# 刪除 -f 強制刪除
docker rm -f 容器id
查看日志
docker logs -f 容器id --tail 100
# -f 保持輸出
# --tail 輸出尾部多少行,默認所有
進入正在運行的容器
# 將后台運行的容器展示到前台,不能執行其他命令
docker attach 容器id
# 可以執行指定的cmd命令,如bash、curl等
docker exec -i -t 容器id cmd
拷貝文件
# 主機中文件拷貝到容器中
docker cp 主機文件路徑 容器ID或容器名:容器路徑
# 容器中文件拷貝到主機中
docker cp 容器ID或容器名:容器路徑 主機文件路徑
Docker registry
Docker registry是一個集中存儲、管理鏡像的遠程服務,類似與maven的遠程倉庫。最常用的Docker registry就是官方的Docker Hub。
以鏡像名:Tag
指定哪個版本的鏡像,來從Docker registry拉取指定鏡像。如果不指定Tag,將以lastest
作為默認標簽。
例如我們拉取java 8的鏡像,使用docker pull java:8
。
總結
參考資料
純潔的微笑:Docker(一):Docker入門教程