- ·上一篇文章:Docker 容器使用
- ·下一篇文章:Docker 容器连接
Docker 镜像使用
Docker 镜像使用当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从?Docker Hub?公共镜像源下载。下面我们来学习:1、管理和使用本地 Docker 主机镜像2、创建镜像列出镜像列表我们可以使用?docker images?来列出本地主机上的镜像。k88@k88:
~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZEubuntu 14.04 90d5884b1ee0 5 days ago 188 MBphp 5.6 f40e9e0f10c8 9 days ago 444.8 MBnginx latest 6f8d099c3adc 12 days ago 182.7 MBmysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MBhttpd latest 02ef73cf1bc0 3 weeks ago 194.4 MBubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MBhello-world latest 690ed74de00f 6 months ago 960 Btraining/webapp latest 6fae60ef3446 11 months ago 348.8 MB各个选项说明:
REPOSITORY:表示镜像的仓库源TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间SIZE:镜像大小同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:
TAG 来定义不同的镜像。所以,我们如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:k88@k88:
~$ docker run -t -i ubuntu:
15.10 /bin/bash root@d77ccb2e5cca:
/
#如果要使用版本为14.04的ubuntu系统镜像来运行容器时,命令如下:k88@k88:
~$ docker run -t -i ubuntu:
14.04 /bin/bash root@39e968165990:
/
# 如果你不指定一个镜像的版本标签,例如你只使用?ubuntu,docker 将默认使用?ubuntu:
latest?镜像。获取一个新的镜像当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用?docker pull?命令来下载它。Ck88@k88:
~$ docker pull ubuntu:
13.1013.10:
Pulling from library/ubuntu6599cadaf950:
Pull complete 23eda618d451:
Pull complete f0be3084efe9:
Pull complete 52de432f084b:
Pull complete a3ed95caeb02:
Pull complete Digest:
sha256:
15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3Status:
Downloaded newer image for ubuntu:
13.10下载完成后,我们可以直接使用这个镜像来运行容器。查找镜像我们可以从?Docker Hub?网站来搜索镜像,Docker Hub?网址为:https:
//hub.docker.com/我们也可以使用?docker search?命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过?docker search?命令搜索?httpd?来寻找适合我们的镜像。k88@k88:
~$ docker search httpdNAME:
镜像仓库源的名称DESCRIPTION:
镜像的描述OFFICIAL:
是否docker官方发布拖取镜像我们决定使用上图中的httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。k88@k88:
~$ docker pull httpdUsing default tag:
latestlatest:
Pulling from library/httpd8b87079b7a06:
Pulling fs layer a3ed95caeb02:
Download complete 0d62ec9c6a76:
Download complete a329d50397b9:
Download complete ea7c1f032b5c:
Waiting be44112b72c7:
Waiting下载完成后,我们就可以使用这个镜像了。k88@k88:
~$ docker run httpd创建镜像当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。1.从已经创建的容器中更新镜像,并且提交这个镜像2.使用?Dockerfile?指令来创建一个新的镜像更新镜像更新镜像之前,我们需要使用镜像来创建一个容器。k88@k88:
~$ docker run -t -i ubuntu:
15.10 /bin/bashroot@e218edb10161:
/
# 在运行的容器内使用 apt-get update 命令进行更新。在完成操作之后,输入?exit命令来退出这个容器。此时ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。k88@k88:
~$ docker commit -m="has update" -a="k88" e218edb10161 k88/ubuntu:
v2sha256:
70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8各个参数说明:-m:
提交的描述信息-a:
指定镜像作者e218edb10161:容器IDk88/ubuntu:
v2:
指定要创建的目标镜像名我们可以使用?docker images?命令来查看我们的新镜像 k88/ubuntu:
v2:k88@k88:
~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEk88/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MBubuntu 14.04 90d5884b1ee0 5 days ago 188 MBphp 5.6 f40e9e0f10c8 9 days ago 444.8 MBnginx latest 6f8d099c3adc 12 days ago 182.7 MBmysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MBhttpd latest 02ef73cf1bc0 3 weeks ago 194.4 MBubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MBhello-world latest 690ed74de00f 6 months ago 960 Btraining/webapp latest 6fae60ef3446 12 months ago 348.8 MB使用我们的新镜像 k88/ubuntu 来启动一个容器k88@k88:
~$ docker run -t -i k88/ubuntu:
v2 /bin/bash root@1a9fbdeb5da3:
/
#构建镜像我们使用命令 docker build?, 从零开始来创建一个新的镜像。为此,我们需要创建一个?Dockerfile?文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。k88@k8
~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZEubuntu 14.04 90d5884b1ee0 5 days ago 188 MBphp 5.6 f40e9e0f10c8 9 days ago 444.8 MBnginx latest 6f8d099c3adc 12 days ago 182.7 MBmysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MBhttpd latest 02ef73cf1bc0 3 weeks ago 194.4 MBubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MBhello-world latest 690ed74de00f 6 months ago 960 Btraining/webapp latest 6fae60ef3446 11 months ago 348.8 MB各个选项说明:
REPOSITORY:表示镜像的仓库源TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间SIZE:镜像大小同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:
TAG 来定义不同的镜像。所以,我们如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:k88@k88:
~$ docker run -t -i ubuntu:
15.10 /bin/bash root@d77ccb2e5cca:
/
#如果要使用版本为14.04的ubuntu系统镜像来运行容器时,命令如下:k88@k88:
~$ docker run -t -i ubuntu:
14.04 /bin/bash root@39e968165990:
/
# 如果你不指定一个镜像的版本标签,例如你只使用?ubuntu,docker 将默认使用?ubuntu:
latest?镜像。获取一个新的镜像当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用?docker pull?命令来下载它。Ck88@k88:
~$ docker pull ubuntu:
13.1013.10:
Pulling from library/ubuntu6599cadaf950:
Pull complete 23eda618d451:
Pull complete f0be3084efe9:
Pull complete 52de432f084b:
Pull complete a3ed95caeb02:
Pull complete Digest:
sha256:
15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3Status:
Downloaded newer image for ubuntu:
13.10下载完成后,我们可以直接使用这个镜像来运行容器。查找镜像我们可以从?Docker Hub?网站来搜索镜像,Docker Hub?网址为:https:
//hub.docker.com/我们也可以使用?docker search?命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过?docker search?命令搜索?httpd?来寻找适合我们的镜像。k88@k88:
~$ docker search httpdNAME:
镜像仓库源的名称DESCRIPTION:
镜像的描述OFFICIAL:
是否docker官方发布拖取镜像我们决定使用上图中的httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。k88@k88:
~$ docker pull httpdUsing default tag:
latestlatest:
Pulling from library/httpd8b87079b7a06:
Pulling fs layer a3ed95caeb02:
Download complete 0d62ec9c6a76:
Download complete a329d50397b9:
Download complete ea7c1f032b5c:
Waiting be44112b72c7:
Waiting下载完成后,我们就可以使用这个镜像了。k88@k88:
~$ docker run httpd创建镜像当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。1.从已经创建的容器中更新镜像,并且提交这个镜像2.使用?Dockerfile?指令来创建一个新的镜像更新镜像更新镜像之前,我们需要使用镜像来创建一个容器。k88@k88:
~$ docker run -t -i ubuntu:
15.10 /bin/bashroot@e218edb10161:
/
# 在运行的容器内使用 apt-get update 命令进行更新。在完成操作之后,输入?exit命令来退出这个容器。此时ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。k88@k88:
~$ docker commit -m="has update" -a="k88" e218edb10161 k88/ubuntu:
v2sha256:
70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8各个参数说明:-m:
提交的描述信息-a:
指定镜像作者e218edb10161:容器IDk88/ubuntu:
v2:
指定要创建的目标镜像名我们可以使用?docker images?命令来查看我们的新镜像 k88/ubuntu:
v2:k88@k88:
~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEk88/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MBubuntu 14.04 90d5884b1ee0 5 days ago 188 MBphp 5.6 f40e9e0f10c8 9 days ago 444.8 MBnginx latest 6f8d099c3adc 12 days ago 182.7 MBmysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MBhttpd latest 02ef73cf1bc0 3 weeks ago 194.4 MBubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MBhello-world latest 690ed74de00f 6 months ago 960 Btraining/webapp latest 6fae60ef3446 12 months ago 348.8 MB使用我们的新镜像 k88/ubuntu 来启动一个容器k88@k88:
~$ docker run -t -i k88/ubuntu:
v2 /bin/bash root@1a9fbdeb5da3:
/
#构建镜像我们使用命令 docker build?, 从零开始来创建一个新的镜像。为此,我们需要创建一个?Dockerfile?文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。k88@k8
Docker 镜像使用