【Docker】Docker 仓库管理和Docker Dockerfile

这篇具有很好参考价值的文章主要介绍了【Docker】Docker 仓库管理和Docker Dockerfile。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等
作者主页: 七七的个人主页
文章收录专栏: 七七的闲谈
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖


【Docker】Docker 仓库管理和Docker Dockerfile,七七的闲谈,docker,eureka,容器,云原生,运维

Docker 仓库管理

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

Docker Hub

目前 Docker 官方维护了一个公共仓库 Docker Hub。

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

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

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

$ docker login

【Docker】Docker 仓库管理和Docker Dockerfile,七七的闲谈,docker,eureka,容器,云原生,运维
退出

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

$ docker logout

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

以 ubuntu 为关键词进行搜索:

$ docker search ubuntu

【Docker】Docker 仓库管理和Docker Dockerfile,七七的闲谈,docker,eureka,容器,云原生,运维
使用 docker pull 将官方 ubuntu 镜像下载到本地:

$ docker pull ubuntu 

【Docker】Docker 仓库管理和Docker Dockerfile,七七的闲谈,docker,eureka,容器,云原生,运维
推送镜像
用户登录后,可以通过 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

【Docker】Docker 仓库管理和Docker Dockerfile,七七的闲谈,docker,eureka,容器,云原生,运维
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】Docker 仓库管理和Docker Dockerfile,七七的闲谈,docker,eureka,容器,云原生,运维
以上显示,说明已经构建成功。

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

$ docker build -t nginx:v3 .

上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

  关于 【Docker】Docker 仓库管理和Docker Dockerfile的详细讲解,七七就先分享到这里了,如果你认为这篇文章对你有帮助,请给七七点个赞吧,如果发现什么问题,欢迎评论区留言!!💕💕文章来源地址https://www.toymoban.com/news/detail-751318.html

到了这里,关于【Docker】Docker 仓库管理和Docker Dockerfile的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker容器:docker数据管理、镜像的创建及dockerfile案例

    因为数据写入后如果停止了容器,再开启数据就会消失,使用数据管理的数据卷挂载,实现了数据的持久化,重启数据还会存在;还有一种方式,容器之间共享文件即相当于有个备份,也会解决停止容器后数据消失的问题。 管理 Docker 容器中数据主要有两种方式:数据卷(

    2024年02月12日
    浏览(54)
  • 在Docker中使用Dockerfile实现ISO文件转化为完整版Centos镜像,并搭建集群数据仓库

    在上一篇文章中,我们提到了如何使用Docker官方版本的centos7搭建容器集群并实现同一ip下使用不同端口的ssh远程登录,但是其中遇到了非常多的问题,例如: 官方的centos7过于“简陋”,导致我们运行脚本时因为没有预装依赖包而报错! 这个可太致命了,所以这篇文章教大家

    2024年02月12日
    浏览(45)
  • Docker的数据管理和Dockerfile的指令

    管理 Docker 容器中数据主要有两种方式: 数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。 1、数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在

    2024年02月15日
    浏览(39)
  • Docker 的数据管理与Dockerfile 镜像的创建

    ------------------Docker 的数据管理--------------------- 管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。 1.数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见

    2024年02月07日
    浏览(40)
  • Docker 仓库管理

    仓库(Repository)是集中存放镜像的地方。以下介绍一下 Docker Hub。当然不止 docker hub,只是远程的服务商不一样,操作都是一样的。 目前 Docker 官方维护了一个公共仓库 Docker Hub。 大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。 注册 在 https://hub.docker.com 免费注

    2024年01月19日
    浏览(29)
  • Docker--harbor Docker--registry 私有仓库部署与管理

    拉取 registry 镜像 开启registries容器 添加私有仓库地址 使用配置文件 /etc/docker/daemon.json(没有时新建该文件)添加私有仓库地址 (在任何需要推送以及拉去镜像的docker宿主机上) 重新加载Docker守护程序  更改tag并上传 更改tag 推送到私有仓库 浏览器访问,查看存储的镜像 

    2024年02月15日
    浏览(55)
  • Docker私有仓库部署和管理

    Docker--harbor私有仓库部署与管理 ------------------------------------ Harbor 简介 ------------------------------------ (1)什么是Harbor Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。 Harbor以 Docker 公司开源的 Registry 为基础,提供

    2024年02月08日
    浏览(37)
  • Docker私有仓库部署与管理

    目录 Docker--harbor Harbor 简介 Harbor 部署 1. 部署 Docker-Compose 服务 2. 部署 Harbor 服务 维护管理Harbor 1. 通过 Harbor Web 创建项目 2. 创建 Harbor 用户 3. 查看日志 4. 修改 Harbor.cfg 配置文件 5. 移除 Harbor 服务容器同时保留镜像数据/数据库,并进行迁移 Harbor高可用 Docker--Registry (1)什么是

    2024年02月15日
    浏览(41)
  • Docker本地私有仓库、harbor私有仓库部署与管理

    docker本地仓库,存放镜像,本地的机器上传和下载,pull/push。 使用私有仓库有许多优点: ①节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可; ②提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包