Docker二 | 镜像制作与推送操作

这篇具有很好参考价值的文章主要介绍了Docker二 | 镜像制作与推送操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Docker镜像制作

搭建私服

将本地镜像推送到私服

从私服拉取镜像

将本地镜像推送到阿里云

从阿里云拉取镜像


Docker镜像制作

以创建一个新ubuntu镜像,并安装vim命令示例

运行一个ubuntu镜像,发现在镜像里面无法使用vim命令因为该ubuntu镜像只包括了其最基本的内核命令

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
ubuntu                              latest    ba6acccedd29   2 years ago     72.8MB
[root@localhost ~]# docker run -it ba6acccedd29 /bin/bash
root@f1e088df465f:/# vim a.txt
bash: vim: command not found

给ubuntu容器安装vim

root@f1e088df465f:/# apt-get update
root@f1e088df465f:/# apt-get -y install vim

安装完成之后就可以在容器里面使用vim编辑器进行文件的编辑了

root@f1e088df465f:/# vim a.txt
root@f1e088df465f:/# 
将这个运行的容器制作成一个带有vim功能的ubuntu镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
[root@localhost ~]# docker commit -m="add vim" -a="mgaw" f1e088df465f linux1:1.00001
sha256:6eb1515df77a8a00c6ae3ff5c541f26a50fd585a4b67d321280612cef1f852e1
查看镜像,发现比原镜像大了很多
[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
linux1                              1.00001   6eb1515df77a   31 seconds ago   189MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB

运行自己制作的镜像

[root@localhost ~]# docker run -it 6eb1515df77a /bin/bash
root@cc4ba90ce5d4:/# vim a.txt
root@cc4ba90ce5d4:/# 
发现确实带有vim功能了

搭建私服

下载镜像Docker Registry

[root@localhost ~]# docker pull registry

运行私服库Registry,相当于本地的私有Docker hub

[root@localhost ~]# docker run -d -p 5000:5000 -v /mgaw/myregistry/:/tmp/registry --privileged=true registry
18d989f67ba7cab18d1654227bfb8aa4350d19b3e2d9f912302f1b19bc7d852e

将本地镜像推送到私服

以创建一个新ubuntu镜像,并安装ifconfig命令示例

运行一个ubuntu镜像,发现在镜像里面无法使用ifconfig命令因为该ubuntu镜像只包括了其最基本的内核命令

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
ubuntu                              latest    ba6acccedd29   2 years ago     72.8MB
[root@localhost ~]# docker run -it ba6acccedd29 /bin/bash
root@32766e3fc651:/# ifconfig
bash: ifconfig: command not found

给ubuntu容器安装ifconfig

root@32766e3fc651:/# apt-get update
root@32766e3fc651:/# apt-get install net-tools
root@32766e3fc651:/# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.7  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:07  txqueuelen 0  (Ethernet)
        RX packets 9126  bytes 30122477 (30.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7207  bytes 395192 (395.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

将这个运行的容器制作成一个带有ifconfig功能的ubuntu镜像

[root@localhost ~]# docker commit -m="ifconfig" -a="mgaw" 32766e3fc651 ubuntu1:1.00002
sha256:120ca7640729ad7ca74912b3ca8f9f0dceedf7a798e39b59d122652907dd3a0e

查看镜像,发现比原镜像大了很多

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
ubuntu1                             1.00002   120ca7640729   47 seconds ago   122MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB
使用 curl 工具验证私服库上有什么镜像
[root@localhost ~]# curl -XGET http://192.168.117.131:5000/v2/_catalog
{"repositories":[]}
目前私服库没有镜像上传过
将新镜像 ubuntu1:1.00002 修改符合私服规范的 Tag
命令格式: docker tag 镜像:Tag Host:Port/Repository:Tag
[root@localhost ~]# docker tag ubuntu1:1.00002 192.168.117.131:5000/ubuntu1:1.00002

查看修改后的镜像

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
ubuntu1                             1.00002   120ca7640729   5 minutes ago    122MB
192.168.117.131:5000/ubuntu1        1.00002   120ca7640729   5 minutes ago    122MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB
修改 docker 配置文件使之支持 http
vim /etc/docker/daemon.json

新增如下内容

"insecure-registries": ["192.168.117.131:5000"]

最后的结果如下

Docker二 | 镜像制作与推送操作,Docker,docker

 重新启动docker,并保证linux防火墙没有对5000端口拦截

[root@localhost ~]# systemctl restart docker
由于重新启动了docker,需要重新启动 docker registry 容器
[root@localhost ~]# docker run -d -p 5000:5000 -v /mgaw/myregistry/:/tmp/registry --privileged=true registry
bbef35a7bd2f80525932769666c320751565f7f01bf095f30bbfe30fc219b564

推送镜像到私服

[root@localhost ~]# docker push 192.168.117.131:5000/ubuntu1:1.00002
The push refers to repository [192.168.117.131:5000/ubuntu1]
48d7d917047c: Pushed 
9f54eef41275: Pushed 
1.00002: digest: sha256:94872dd08e5e7d4c5921cb3581f8e01631f85a81a34e9dea83a28212ffb48593 size: 741

查看私服库上是否存在镜像

[root@localhost ~]# curl -XGET http://192.168.117.131:5000/v2/_catalog
{"repositories":["ubuntu1"]}

至此推送操作完成 

从私服拉取镜像

首先删除192.168.117.131:5000/ubuntu1镜像

[root@localhost ~]# docker rmi -f 120ca7640729
[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
linux1                              1.00001   6eb1515df77a   48 minutes ago   189MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB
[root@localhost ~]# docker pull 192.168.117.131:5000/ubuntu1:1.00002
1.00002: Pulling from ubuntu1
7b1a6ab2e44d: Already exists 
0981e371e319: Pull complete 
Digest: sha256:94872dd08e5e7d4c5921cb3581f8e01631f85a81a34e9dea83a28212ffb48593
Status: Downloaded newer image for 192.168.117.131:5000/ubuntu1:1.00002
192.168.117.131:5000/ubuntu1:1.00002

再次查看镜像,发现镜像成功拉取下来了

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
192.168.117.131:5000/ubuntu1        1.00002   120ca7640729   19 minutes ago   122MB
linux1                              1.00001   6eb1515df77a   49 minutes ago   189MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB

至此拉取操作完成

将本地镜像推送到阿里云

登录阿里云后进行如下操作

Docker二 | 镜像制作与推送操作,Docker,docker

选择管理控制台

Docker二 | 镜像制作与推送操作,Docker,docker

选择创建个人版实例

Docker二 | 镜像制作与推送操作,Docker,docker

完善镜像仓库

Docker二 | 镜像制作与推送操作,Docker,docker

完善仓库信息

Docker二 | 镜像制作与推送操作,Docker,docker

注意如下命令

Docker二 | 镜像制作与推送操作,Docker,docker

先在Docker下远程登录阿里云

​
[root@localhost ~]# docker login --username=aliyun5258341332 registry.cn-hangzhou.aliyuncs.com
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

将要推送的镜像改名

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
192.168.117.131:5000/ubuntu1        1.00002   120ca7640729   5 days ago      122MB
linux1                              1.00001   6eb1515df77a   5 days ago      189MB
[root@localhost ~]# docker tag 6eb1515df77a registry.cn-hangzhou.aliyuncs.com/awawcr/linux1:1.00001

 查看改名后的镜像

[root@localhost ~]# docker images
REPOSITORY                                        TAG       IMAGE ID       CREATED         SIZE
192.168.117.131:5000/ubuntu1                      1.00002   120ca7640729   5 days ago      122MB
linux1                                            1.00001   6eb1515df77a   5 days ago      189MB
registry.cn-hangzhou.aliyuncs.com/awawcr/linux1   1.00001   6eb1515df77a   5 days ago      189MB

推送镜像到阿里云

[root@localhost ~]# docker push registry.cn-hangzhou.aliyuncs.com/awawcr/linux1:1.00001
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/awawcr/linux1]
b553c8e0972f: Pushed 
9f54eef41275: Pushed 
1.00001: digest: sha256:09fc3901e5e3094cce97ab89fb6d1afb794df0afa313a7570343c44b25c5a9eb size: 741

查看阿里云发现刚刚推送的镜像

Docker二 | 镜像制作与推送操作,Docker,docker

至此推送操作完成 

从阿里云拉取镜像

首先删除之前的镜像

[root@localhost ~]# docker images
REPOSITORY                                        TAG       IMAGE ID       CREATED         SIZE
192.168.117.131:5000/ubuntu1                      1.00002   120ca7640729   5 days ago      122MB
linux1                                            1.00001   6eb1515df77a   5 days ago      189MB
registry.cn-hangzhou.aliyuncs.com/awawcr/linux1   1.00001   6eb1515df77a   5 days ago      189MB
[root@localhost ~]# docker rmi -f 6eb1515df77a
Untagged: linux1:1.00001
Untagged: registry.cn-hangzhou.aliyuncs.com/awawcr/linux1:1.00001
Untagged: registry.cn-hangzhou.aliyuncs.com/awawcr/linux1@sha256:09fc3901e5e3094cce97ab89fb6d1afb794df0afa313a7570343c44b25c5a9eb
Deleted: sha256:6eb1515df77a8a00c6ae3ff5c541f26a50fd585a4b67d321280612cef1f852e1
[root@localhost ~]# docker images#发现删除成功
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
192.168.117.131:5000/ubuntu1        1.00002   120ca7640729   5 days ago      122MB

拉取镜像

[root@localhost ~]# docker pull registry.cn-hangzhou.aliyuncs.com/awawcr/linux1:1.00001
1.00001: Pulling from awawcr/linux1
7b1a6ab2e44d: Already exists 
3245ac4203cc: Already exists 
Digest: sha256:09fc3901e5e3094cce97ab89fb6d1afb794df0afa313a7570343c44b25c5a9eb
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/awawcr/linux1:1.00001
registry.cn-hangzhou.aliyuncs.com/awawcr/linux1:1.00001

查看镜像发现拉取成功

[root@localhost ~]# docker images
REPOSITORY                                        TAG       IMAGE ID       CREATED         SIZE
192.168.117.131:5000/ubuntu1                      1.00002   120ca7640729   5 days ago      122MB
registry.cn-hangzhou.aliyuncs.com/awawcr/linux1   1.00001   6eb1515df77a   5 days ago      189MB

至此拉取操作完成文章来源地址https://www.toymoban.com/news/detail-752119.html

到了这里,关于Docker二 | 镜像制作与推送操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Docker 将容器打包成镜像&推送镜像到仓库

    示例: 1.登录仓库进行身份验证 2.将本地镜像重命名与仓库格式相匹配 3.推送镜像到仓库

    2024年02月09日
    浏览(36)
  • 宝塔面板备份docker,镜像打包下载到本地,镜像还原,镜像推送

    欢迎关注 『发现你走远了』 博客,持续更新中 欢迎关注 『发现你走远了』 博客,持续更新中 软件商店-点击docker管理器的设置 生成镜像 这里可以直接点击提交,你也可以自己自定义 打包镜像 选择打包我们刚刚生成的镜像 下载打包好的镜像 你可以通过上传文件的方法上传

    2024年02月11日
    浏览(31)
  • 推送docker镜像到私有/DockerHub仓库

    以定制jdk11镜像为例: 新建文件夹jdk11 下载orcale jdk11,复制orcale jdk11 到刚刚新建文件夹jdk11下 新建Dockerfile,镜像对字符集和时间都做了处理 创建镜像 给镜像打标签 登录Harbor私服 推送镜像 过程中常见错误解决方法 docker配置中添加私服地址,重启docker服务 访问https://hub.doc

    2024年02月15日
    浏览(32)
  • Docker镜像的拉取和推送(阿里云镜像仓库)

    简介: 阿里云的容器镜像服务个人版是不要钱的,个人可以免费创建3个命名空间和最多可创建300个免费的镜像仓库供以使用,平时可以使用这项服务对个人的镜像进行管理,就可以不使用国外的DockerHub来对镜像进行管理了,大大节省了拉取和推送的时间,本文将介绍如何把

    2024年01月23日
    浏览(30)
  • Docker如何连接至本地私服Harbor中 推送镜像、查看镜像、下载镜像

    win/mac/linux 装有Docker 私服 Harbor Docker中文站 Docker官方站 下载并安装Docker Harbor GitHub Harbor 官方地址 下载并安装 Harbor (测试的话 推荐用Docker镜像来启动Harbor 减少环境问题) 启动后 访问 Harbor 的页面 登录进入 进入后显示 记住这几个关键信息(每个人不一样):地址(172.16.1.77)

    2024年02月06日
    浏览(47)
  • Maven生成和推送Docker镜像到Docker仓库( IDEA 亲测可用)

    目录 1.搭建私有Docker镜像仓库 1.搭建docker registry 2.搭建docker registry web UI: 2.Maven创建并上传Docker镜像: 1.允许docker被远程访问 2.重启docker服务 3.构建和上传Docker镜像(不适用IDEA) 4.构建并上传Docker镜像(适用IDEA) 1.搭建docker registry 参考文档:docker-registry私有镜像库搭建并配置

    2023年04月08日
    浏览(31)
  • Docker -- 镜像仓库(搭建私有镜像仓库、向镜像仓库推送镜像、从镜像仓库拉取镜像)

    搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址 Docker 官方的 Docker Registry 是一个基础版本的 Docker 镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。 搭建方式比较简单,命令如下: 命令中挂载了一个数据卷 registry-data 到容器内的 /var/lib/regist

    2024年02月04日
    浏览(67)
  • idea配置docker推送本地镜像到远程私有仓库

    目录 1,搭建远程Docker 私有仓库 Docker registry 2,Windows10/11系统上安装Docker Desktop 3,idea 配置远程私有仓库地址 4,idea 配置Docker 5,idea在本地构建镜像 6,推送本地Docker镜像到远程 Docker私有仓库 7,测试/生产环境从 Docker registry 私有仓库中拉取镜像 1,搜索镜像 2,拉取镜像并

    2024年02月03日
    浏览(36)
  • Springboot集成Docker并将镜像推送linux服务器

    案例使用springboot项目,在IDEA 中集成Docker生成镜像,并将镜像发布到linux服务器 具体步骤如下: 更新系统的软件包列表 安装Docker所需的软件包和依赖项: 完成安装后,启动Docker服务。在终端中运行以下命令: 验证Docker是否成功安装。在终端中运行以下命令: linux查看docke

    2024年02月09日
    浏览(23)
  • 【Docker】Docker学习④ - Docker镜像与制作

    参考:【Docker】Dokcer学习① - 简介 参考:【Docker】Docker学习② - Docker安装及基础命令介绍 参考:【Docker】Docker学习③ - Docker镜像管理 docker镜像有没有内核? 从镜像大小上面来说,一个比较小的镜像只有十几MB,而内核文件需要一百多兆,因此镜像里面是没有内核的,镜像在

    2024年01月23日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包