当前位置: 代码网 > it编程>开发工具>Docker > 【Docker】Docker 仓库管理和Docker Dockerfile

【Docker】Docker 仓库管理和Docker Dockerfile

2024年07月31日 Docker 我要评论
Docker仓库管理和Docker Dockerfile

在这里插入图片描述

docker 仓库管理和docker dockerfile

docker 仓库管理

仓库(repository)是集中存放镜像的地方。以下介绍一下 docker hub。当然不止 docker hub,只是远程的服务商不一样,操作都是一样的。

docker hub

目前 docker 官方维护了一个公共仓库 docker hub。

大部分需求都可以通过在 docker hub 中直接下载镜像来实现。

注册
下载地址免费注册一个 docker 账号。

登录和退出
登录需要输入用户名和密码,登录成功后,我们就可以从 docker hub 上拉取自己账号下的全部镜像。

$ docker login

在这里插入图片描述
退出

退出 docker hub 可以使用以下命令:

$ docker logout

拉取镜像
你可以通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。

以 ubuntu 为关键词进行搜索:

$ docker search ubuntu

在这里插入图片描述
使用 docker pull 将官方 ubuntu 镜像下载到本地:

$ docker pull ubuntu 

在这里插入图片描述
推送镜像
用户登录后,可以通过 docker push 命令将自己的镜像推送到 docker hub。

以下命令中的 username 请替换为你的 docker 账号用户名。

$ docker tag ubuntu:18.04 username/ubuntu:18.04
$ docker image ls

repository      tag        image id            created           ...  
ubuntu          18.04      275d79972a86        6 days ago        ...  
username/ubuntu 18.04      275d79972a86        6 days ago        ...  
$ docker push username/ubuntu:18.04
$ docker search username/ubuntu

name             description       stars         official    automated
username/ubuntu

docker dockerfile

什么是 dockerfile?
dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

使用 dockerfile 定制镜像
这里仅讲解如何运行 dockerfile 文件来定制一个镜像,具体 dockerfile 文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可。

1、下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件)

在一个空目录下,新建一个名为 dockerfile 文件,并在文件内添加以下内容:

from nginx
run echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html

在这里插入图片描述
2、from 和 run 指令的作用

from:定制的镜像都是基于 from 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。

run:用于执行后面跟着的命令行命令。有以下俩种格式:

shell 格式:

run <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。

exec 格式:

run ["可执行文件", "参数1", "参数2"]
# 例如:
# run ["./test.php", "dev", "offline"] 等价于 run ./test.php dev offline

注意:dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。例如:

from centos
run yum -y install wget
run wget -o redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
run tar -xvf redis.tar.gz

以上执行会创建 3 层镜像。可简化为以下格式:

from centos
run yum -y install wget \
    && wget -o redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
    && tar -xvf redis.tar.gz

如上,以 && 符号连接命令,这样执行后,只会创建 1 层镜像。

开始构建镜像
在 dockerfile 文件的存放目录下,执行构建动作。

以下示例,通过目录下的 dockerfile 构建一个 nginx:v3(镜像名称:镜像标签)。

$ docker build -t nginx:v3 .

在这里插入图片描述
以上显示,说明已经构建成功。

上下文路径
上一节中,有提到指令最后一个 . 是上下文路径,那么什么是上下文路径呢?

$ docker build -t nginx:v3 .
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com