文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么构建自己的docker容器镜像

2023-07-05 23:47

关注

本文小编为大家详细介绍“怎么构建自己的docker容器镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么构建自己的docker容器镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一. 设置docker构建镜像的环境

1.1 commit 命令的介绍

我们执行 docker help commit来查看:

[root@mufeng63 ~]# docker help commitUsage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]Create a new image from a container's changesAliases:  docker container commit, docker commitOptions:  -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")  -c, --change list      Apply Dockerfile instruction to the created image  -m, --message string   Commit message  -p, --pause            Pause container during commit (default true)[root@mufeng63 ~]#

1.2 创建一个tomcat容器

[root@mufeng63 ~]# docker imagesREPOSITORY   TAG       IMAGE ID   CREATED   SIZE[root@mufeng63 ~]# docker pull tomcatUsing default tag: latestlatest: Pulling from library/tomcat0e29546d541c: Pull complete 9b829c73b52b: Pull complete cb5b7ae36172: Pull complete 6494e4811622: Pull complete 668f6fcc5fa5: Pull complete dc120c3e0290: Pull complete 8f7c0eebb7b1: Pull complete 77b694f83996: Pull complete 0f611256ec3a: Pull complete 4f25def12f23: Pull complete Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324Status: Downloaded newer image for tomcat:latestdocker.io/library/tomcat:latest[root@mufeng63 ~]#
[root@mufeng63 ~]# docker run  --name mytomcat -d -p 8080:8080 tomcat1f5bd6dcca0a614ec047bf3882e3fe2e4cdb17b7f343d7834145b17d1fc3c3c3[root@mufeng63 ~]#

 如果不创建页面,直接访问Tomcat是会报错的,所以这里需要手动创建一个web测试页面:

//查看正在运行的容器[root@mufeng63 ~]# docker psCONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS                                       NAMES1f5bd6dcca0a   tomcat    "catalina.sh run"   53 seconds ago   Up 52 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   mytomcat// 登录Tomcat容器[root@mufeng63 ~]# docker exec -it 1f5bd6dcca0a /bin/bashroot@1f5bd6dcca0a:/usr/local/tomcat# lsBUILDING.txt LICENSE  README.md RUNNING.txt  conf  logs    temp     webapps.distCONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin      lib   native-jni-lib  webapps  work// 创建web测试目录root@1f5bd6dcca0a:/usr/local/tomcat# mkdir webapps/mufeng_demo//创建index.htmlroot@1f5bd6dcca0a:/usr/local/tomcat# echo "<h2>This is mufenggrow </>" > webapps/mufeng_demo/index.htmlroot@1f5bd6dcca0a:/usr/local/tomcat#

怎么构建自己的docker容器镜像

二. 开始构建自己的镜像

2.1 查看容器的ID

先要确定自己要基于哪个容器生成镜像, 这里我们用Tomcat的容器来构建:

[root@mufeng63 ~]# docker psCONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS                                       NAMES1f5bd6dcca0a   tomcat    "catalina.sh run"   19 minutes ago   Up 19 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   mytomcat[root@mufeng63 ~]#

可以确定该容器的ID是1f5bd6dcca0a

2.2 使用命令docker commit 生成该容器的镜像,并保存在本地

[root@mufeng63 ~]# docker commit 1f5bd6dcca0a mufeng_tomcatsha256:3dbdf1f915ac9cc3210fb0e77d9f5d93f24064ac604cf12d24f602693396eed3[root@mufeng63 ~]# docker imagesREPOSITORY      TAG       IMAGE ID       CREATED         SIZEmufeng_tomcat   latest    3dbdf1f915ac   9 seconds ago   680MBtomcat          latest    fb5657adc892   15 months ago   680MB[root@mufeng63 ~]#

执行完成后,看到多了一个mufeng_tomcat 的镜像。

三. 上传镜像到镜像仓库

3.1 登录docker hub

docker hub的官网地址: https://hub.docker.com/

怎么构建自己的docker容器镜像

 你可以手动创建存储库,当然也可以不创建,我们这里默认是不创建的,上传的时候直接用mufenggrow/ 即可

怎么构建自己的docker容器镜像

3.2 创建镜像

如果要上传到镜像仓库中,需要在镜像名称前加上仓库的路径信息:

[root@mufeng63 ~]# docker commit 1f5bd6dcca0a mufenggrow/mufeng_tomcatsha256:dc9420341e4bd06cdd7dc5881220481c9dbe8faf4d548356c6dbab265a36416b[root@mufeng63 ~]# docker imagesREPOSITORY                 TAG       IMAGE ID       CREATED          SIZEmufenggrow/mufeng_tomcat   latest    dc9420341e4b   5 seconds ago    680MBmufeng_tomcat              latest    3dbdf1f915ac   16 minutes ago   680MBtomcat                     latest    fb5657adc892   15 months ago    680MB

3.3 上传到镜像仓库

[root@mufeng63 ~]# docker loginLogin with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.Username: mufenggrowPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded[root@mufeng63 ~]#
[root@mufeng63 ~]# docker push mufenggrow/mufeng_tomcatUsing default tag: latestThe push refers to repository [docker.io/mufenggrow/mufeng_tomcat]66f50273e519: Pushed 3e2ed6847c7a: Mounted from library/tomcat bd2befca2f7e: Mounted from library/tomcat 59c516e5b6fa: Mounted from library/tomcat 3bb5258f46d2: Mounted from library/tomcat 832e177bb500: Mounted from library/tomcat f9e18e59a565: Mounted from library/tomcat 26a504e63be4: Mounted from library/tomcat 8bf42db0de72: Mounted from library/tomcat 31892cc314cb: Mounted from library/tomcat 11936051f93b: Mounted from library/tomcat latest: digest: sha256:4a696362a8586173d7f0f9b12eef1354060d10746796e59519ed083fe0acd5f8 size: 2630[root@mufeng63 ~]#

怎么构建自己的docker容器镜像

 先删除系统中已经有的包:

[root@mufeng63 ~]# docker rmi mufenggrow/mufeng_tomcat:latest Untagged: mufenggrow/mufeng_tomcat:latestUntagged: mufenggrow/mufeng_tomcat@sha256:4a696362a8586173d7f0f9b12eef1354060d10746796e59519ed083fe0acd5f8Deleted: sha256:dc9420341e4bd06cdd7dc5881220481c9dbe8faf4d548356c6dbab265a36416bDeleted: sha256:6d5bd3130a0c60a6075e5856fa11c8acfdab7a2252360a6fbeabdef1f83fc526[root@mufeng63 ~]# docker rmi mufeng_tomcatUntagged: mufeng_tomcat:latestDeleted: sha256:3dbdf1f915ac9cc3210fb0e77d9f5d93f24064ac604cf12d24f602693396eed3Deleted: sha256:ea120c9388c452a6f215f1761b5981e40370e74b68d1886237e0931ce33a45f3[root@mufeng63 ~]# docker imagesREPOSITORY   TAG       IMAGE ID       CREATED         SIZEtomcat       latest    fb5657adc892   15 months ago   680MB[root@mufeng63 ~]#

下载镜像包

[root@mufeng63 ~]# docker search mufenggrow/mufeng_tomcatNAME                       DESCRIPTION   STARS     OFFICIAL   AUTOMATEDmufenggrow/mufeng_tomcat                 0                    [root@mufeng63 ~]# docker pull mufenggrow/mufeng_tomcatUsing default tag: latestlatest: Pulling from mufenggrow/mufeng_tomcat0e29546d541c: Already exists 9b829c73b52b: Already exists cb5b7ae36172: Already exists 6494e4811622: Already exists 668f6fcc5fa5: Already exists dc120c3e0290: Already exists 8f7c0eebb7b1: Already exists 77b694f83996: Already exists 0f611256ec3a: Already exists 4f25def12f23: Already exists 5a8cdbad1b10: Pull complete Digest: sha256:4a696362a8586173d7f0f9b12eef1354060d10746796e59519ed083fe0acd5f8Status: Downloaded newer image for mufenggrow/mufeng_tomcat:latestdocker.io/mufenggrow/mufeng_tomcat:latest[root@mufeng63 ~]# docker imagesREPOSITORY                 TAG       IMAGE ID       CREATED          SIZEmufenggrow/mufeng_tomcat   latest    dc9420341e4b   24 minutes ago   680MBtomcat                     latest    fb5657adc892   15 months ago    680MB[root@mufeng63 ~]#

读到这里,这篇“怎么构建自己的docker容器镜像”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯