拉取鏡像
Docker 鏡像的拉取关串,可以使用
docker pull
命令,命令格式一般為docker pull [Registry]/[Repository]/[Image]:[Tag]
怔昨。而且執(zhí)行拉取命令時(shí)脆丁,都是先從本地搜索,如果本地搜索不到鏡像則從 Docker Hub 下載鏡像。
● Registry:為注冊(cè)服務(wù)器端衰,Docker 默認(rèn)會(huì)從 docker.io 拉取鏡像,可以將其替換為自己的注冊(cè)服務(wù)器橄抹。
● Repository:為鏡像倉(cāng)庫(kù)靴迫,通常把一組相關(guān)聯(lián)的鏡像歸為一個(gè)鏡像倉(cāng)庫(kù),library 為 Docker 默認(rèn)的鏡像倉(cāng)庫(kù)楼誓。
● Image:為鏡像名稱(chēng)玉锌。
● Tag:為鏡像的標(biāo)簽,如果不指定拉取鏡像的標(biāo)簽疟羹,默認(rèn)為 latest主守。
查看鏡像
Docker 鏡像查看,可以使用
docker images
命令榄融;如果需要查看指定的鏡像参淫,可以使用docker image ls
或者docker images | grep
命令。
### 列出本地所有鏡像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4bb46517cacc 9 days ago 133MB
busybox latest 018c9d7b7922 3 weeks ago 10MB
### 查看指定鏡像
$ docker image ls busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 018c9d7b7922 3 weeks ago 10MB
$ docker images | grep busybox
busybox latest 018c9d7b7922 3 weeks ago 10MB
重命名鏡像
自定義鏡像名稱(chēng)或者推送鏡像到其他鏡像倉(cāng)庫(kù)愧杯,可以使用
docker tag
命令涎才,命令格式為docker tag [SOURCE_IMAGE]:[TAG] [TARGET_IMAGE]:[TAG]
。重命名的鏡像除了別名不同,其他的內(nèi)容一致耍铜,所以也不能通過(guò)鏡像ID來(lái)刪除鏡像邑闺。
$ docker tag busybox:latest mybbox:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 018c9d7b7922 3 weeks ago 10MB
mybbox latest 018c9d7b7922 3 weeks ago 10MB
刪除鏡像
刪除鏡像,可以使用
docker rmi
或者docker image rm
命令棕兼,如果鏡像名有多個(gè)相同的陡舅,則需要指定標(biāo)簽,默認(rèn)刪除的鏡像標(biāo)簽是latest
伴挚。
$ docker rmi mybbox
Untagged: mybusybox:latest
構(gòu)建鏡像
方式1:使用
docker commit
命令將運(yùn)行中的容器提交為鏡像靶衍,命令格式為docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
。
$ docker run -it --rm --name=mybb busybox sh
$ docker commit a404c6c174a2 busybox:v1
方式2:Dockerfile 是一個(gè)包含了用戶所有構(gòu)建命令的文本茎芋,使用
docker build
命令從 Dockerfile 構(gòu)建鏡像颅眶,注意要在 Dockerfile 所在目錄下執(zhí)行命令。
使用 Dockerfile 構(gòu)建鏡像具有以下特性:
● Dockerfile 的每一行命令都會(huì)生成一個(gè)獨(dú)立的鏡像層败徊,并且擁有唯一的 ID帚呼;
● Dockerfile 的命令是完全透明的,通過(guò)查看 Dockerfile 知道鏡像是如何構(gòu)建的皱蹦;
● Dockerfile 是純文本的,方便跟隨代碼一起存放在代碼倉(cāng)庫(kù)并做版本管理眷蜈。
FROM centos:7
COPY nginx.repo /etc/yum.repos.d/nginx.repo
RUN yum install -y nginx
EXPOSE 80
ENV HOST=mynginx
CMD ["nginx","-g","daemon off;"]