iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >手动构建自己的docker容器镜像实战
  • 831
分享到

手动构建自己的docker容器镜像实战

docker容器镜像实战docker容器镜像 2023-05-15 08:05:06 831人浏览 薄情痞子
摘要

目录前言一. 设置Docker构建镜像的环境1.1 commit 命令的介绍1.2 创建一个Tomcat容器二. 开始构建自己的镜像2.1 查看容器的ID2.2 使用命令docker

前言

之前的实战中,我们实战中,我们使用的镜像都是镜像仓库已有的镜像。 已有的镜像都是别人已经开发好上传的。今天我们一起来看看如何构建自己的镜像并上传到镜像仓库中。

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

  • 使用docker commit命令进行镜像的构建

1.1 commit 命令的介绍

我们执行 docker help commit来查看:

[root@mufeng63 ~]# docker help commit

Usage:  docker commit [OPTioNS] CONTaiNER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Aliases:
  docker container commit, docker commit

Options:
  -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容器

  • 拉取Tomcat的镜像

[root@mufeng63 ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

[root@mufeng63 ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: 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:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest
[root@mufeng63 ~]# 
  • 基于Tomcat的镜像创建容器
[root@mufeng63 ~]# docker run  --name mytomcat -d -p 8080:8080 tomcat
1f5bd6dcca0a614ec047bf3882e3fe2e4cdb17b7f343D7834145b17d1fc3c3c3
[root@mufeng63 ~]# 
  • 在Tomcat中部署一个简单的页面

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

//查看正在运行的容器
[root@mufeng63 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS                                       NAMES
1f5bd6dcca0a   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/bash

root@1f5bd6dcca0a:/usr/local/tomcat# ls
BUILDING.txt	 LICENSE  README.md	 RUNNING.txt  conf  logs	    temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin	      lib   native-jni-lib  webapps  work

// 创建web测试目录
root@1f5bd6dcca0a:/usr/local/tomcat# mkdir webapps/mufeng_demo
//创建index.html
root@1f5bd6dcca0a:/usr/local/tomcat# echo "<h1>This is mufenggrow </>" > webapps/mufeng_demo/index.html
root@1f5bd6dcca0a:/usr/local/tomcat# 

  • 浏览器访问测试:
    使用ip+端口号/mufeng_demo/index.html进行访问:

二. 开始构建自己的镜像

2.1 查看容器的ID

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

[root@mufeng63 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS                                       NAMES
1f5bd6dcca0a   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_tomcat
sha256:3dbdf1f915ac9cc3210fb0e77d9f5d93f24064ac604cf12d24f602693396eed3
[root@mufeng63 ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED         SIZE
mufeng_tomcat   latest    3dbdf1f915ac   9 seconds ago   680MB
tomcat          latest    fb5657adc892   15 months ago   680MB
[root@mufeng63 ~]# 

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

三. 上传镜像到镜像仓库

3.1 登录docker hub

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

  • 注册:

  • 创建存储库

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

3.2 创建镜像

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

[root@mufeng63 ~]# docker commit 1f5bd6dcca0a mufenggrow/mufeng_tomcat
sha256:dc9420341e4bd06cdd7dc5881220481c9dbe8faf4d548356c6dbab265a36416b
[root@mufeng63 ~]# docker images
REPOSITORY                 TAG       IMAGE ID       CREATED          SIZE
mufenggrow/mufeng_tomcat   latest    dc9420341e4b   5 seconds ago    680MB
mufeng_tomcat              latest    3dbdf1f915ac   16 minutes ago   680MB
tomcat                     latest    fb5657adc892   15 months ago    680MB

3.3 上传到镜像仓库

  • 使用docker login 登录
[root@mufeng63 ~]# docker login
Login 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: mufenggrow
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@mufeng63 ~]# 

  • 开始上传
[root@mufeng63 ~]# docker push mufenggrow/mufeng_tomcat
Using default tag: latest
The 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 ~]# 

  •  到网页端查看

  • 下载测试

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

[root@mufeng63 ~]# docker rmi mufenggrow/mufeng_tomcat:latest 
Untagged: mufenggrow/mufeng_tomcat:latest
Untagged: mufenggrow/mufeng_tomcat@sha256:4a696362a8586173d7f0f9b12eef1354060d10746796e59519ed083fe0acd5f8
Deleted: sha256:dc9420341e4bd06cdd7dc5881220481c9dbe8faf4d548356c6dbab265a36416b
Deleted: sha256:6d5bd3130a0c60a6075e5856fa11c8acfdab7a2252360a6fbeabdef1f83fc526
[root@mufeng63 ~]# docker rmi mufeng_tomcat
Untagged: mufeng_tomcat:latest
Deleted: sha256:3dbdf1f915ac9cc3210fb0e77d9f5d93f24064ac604cf12d24f602693396eed3
Deleted: sha256:ea120c9388c452a6f215f1761b5981e40370e74b68d1886237e0931ce33a45f3
[root@mufeng63 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
tomcat       latest    fb5657adc892   15 months ago   680MB
[root@mufeng63 ~]#

下载镜像包

[root@mufeng63 ~]# docker search mufenggrow/mufeng_tomcat
NAME                       DESCRIPTION   STARS     OFFICIAL   AUTOMATED
mufenggrow/mufeng_tomcat                 0                    
[root@mufeng63 ~]# docker pull mufenggrow/mufeng_tomcat
Using default tag: latest
latest: Pulling from mufenggrow/mufeng_tomcat
0e29546d541c: 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:4a696362a8586173d7f0f9b12eef1354060d10746796e59519ed083fe0acd5f8
Status: Downloaded newer image for mufenggrow/mufeng_tomcat:latest
docker.io/mufenggrow/mufeng_tomcat:latest
[root@mufeng63 ~]# docker images
REPOSITORY                 TAG       IMAGE ID       CREATED          SIZE
mufenggrow/mufeng_tomcat   latest    dc9420341e4b   24 minutes ago   680MB
tomcat                     latest    fb5657adc892   15 months ago    680MB
[root@mufeng63 ~]# 

可以看到,我们自己构建的镜像,已经可以下载了。

以上就是手动构建自己的docker容器镜像实战的详细内容,更多关于构建docker容器镜像的资料请关注编程网其它相关文章!

--结束END--

本文标题: 手动构建自己的docker容器镜像实战

本文链接: https://www.lsjlt.com/news/208487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 手动构建自己的docker容器镜像实战
    目录前言一. 设置docker构建镜像的环境1.1 commit 命令的介绍1.2 创建一个tomcat容器二. 开始构建自己的镜像2.1 查看容器的ID2.2 使用命令docker...
    99+
    2023-05-15
    docker容器镜像实战 docker容器镜像
  • 怎么构建自己的docker容器镜像
    本文小编为大家详细介绍“怎么构建自己的docker容器镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么构建自己的docker容器镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一. 设置docker构建...
    99+
    2023-07-05
  • docker怎么手动构建新镜像
    本文小编为大家详细介绍“docker怎么手动构建新镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么手动构建新镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • Docker容器实战之镜像仓库
    目录一.  镜像仓库1. 账号注册2. 创建仓库 二. 上传镜像一.  镜像仓库 Registry是Docker公司的一项创新,它提...
    99+
    2024-04-02
  • 使用GoogleContainerTools容器化jib构建docker镜像
    目录前言碎语插件配置配置详解插件命令使用集成插件生命周期文末结语前言碎语 今天分享一个在容器化过程中非常重要的一个工具,java应用docker镜像build工具jib,这个工具是谷...
    99+
    2024-04-02
  • Docker容器实战之镜像与容器的工作原理
    目录一. bootfs和rootfs二. 镜像结构三. 容器层四. 联合文件系统​一. bootfs和rootfs 通常而言,Linux的操作系统由两类文件系统组...
    99+
    2024-04-02
  • 基于centos自己构建一个tomcat镜像的实现
    写个程序,要输出hello world才开心,同样,学习docker,自己构建镜像才算完事。 说正事: 先放linux用软件链接,自行下载 apache-tomcat-8.0.26j...
    99+
    2024-04-02
  • 怎么使用Google ContainerTools容器构建docker镜像
    本篇内容介绍了“怎么使用Google ContainerTools容器构建docker镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!插件...
    99+
    2023-06-29
  • Docker创建自己的镜像与上传流程详解
    目录引入了解Docker的资源隔离和主机模式创建 centos7 容器部署mysql5.7创建Docker Hub仓库生成镜像提交镜像引入 在部署毕节服务器时遇到了个问题: &ems...
    99+
    2024-04-02
  • 怎么用Docker搭建自己的本地镜像仓库
    这篇文章主要介绍了怎么用Docker搭建自己的本地镜像仓库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Docker搭建自己的本地镜像仓库文章都会有所收获,下面我们一起来...
    99+
    2024-04-02
  • SpringBoot+Docker+IDEA实现一键构建+推送、运行、同镜像多容器启动
    场景: 由于公司项目需要,需要使用部署微服务项目,而之前都是使用tomcat部署,操作十分繁琐。最近正好在学习Docker,利用Docker容器做部署尝试 需求: 使用Do...
    99+
    2024-04-02
  • Docker构建镜像的两种方式实现
    目录从已有镜像更新镜像:从零开始构建镜像:从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。 从已有镜像更新镜像 从零...
    99+
    2024-04-02
  • 如何使用docker构建jenkins镜像并运行容器
    这篇文章主要讲解了“如何使用docker构建jenkins镜像并运行容器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用docker构建jenkins镜像并运行容器”吧!目录:1、基于...
    99+
    2023-06-19
  • Dockerfile构建自定义镜像的实现
    目录前言 Dockerfile简介 Dockerfile构建镜像的流程 Dockerfile使用 前言 前面文章中使用docker运行容器使用的镜像都是从dockerhub上远程p...
    99+
    2024-04-02
  • Docker多阶段镜像构建的实现方法
    小编给大家分享一下Docker多阶段镜像构建的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从Docker版本 17.05.0-ce 开始,就支持了一种新...
    99+
    2023-06-07
  • SpringBoot+Docker+IDEA 实现一键构建+推送、运行、同镜像多容器启动(推荐)
    场景: 由于公司项目需要,需要使用部署微服务项目,而之前都是使用tomcat部署,操作十分繁琐。最近正好在学习Docker,利用Docker容器做部署尝试 需求: 使用Do...
    99+
    2024-04-02
  • linux如何构建更小的容器镜像
    小编给大家分享一下linux如何构建更小的容器镜像,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!microdnfFedora 的 DNF 是用 Python 编写...
    99+
    2023-06-16
  • skywalking容器化部署docker镜像构建k8s从测试到可用
    目录前言碎语docker镜像构建application.ymlwebapp.ymlsetApplicationEnv.shsetWebAppEnv.shKubernetes中部署文末...
    99+
    2024-04-02
  • 使用Docker镜像构建Go应用的实现方法
    目录修炼背景第一次尝试第二次尝试第三次尝试神功练成项目地址修炼背景 我夜以继日,加班加点开发了一个最简单的 Go Hello world 应用,虽然只是跑了打印一下就退出了,但是老板...
    99+
    2024-04-02
  • Docker如何从容器的修改中创建镜像commit
    小编给大家分享一下Docker如何从容器的修改中创建镜像commit,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从容器的修改中...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作