当前位置:K88软件开发文章中心编程语言GoGo01 → 文章内容

Docker 镜像使用

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-11 12:56:05

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

[1] [2]  下一页


Docker 镜像使用