docker打包镜像实战

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: docker打包镜像实战

说明

Linux 使用中间件的时候每次都需要安装配置,如果打成Docker镜像的方式会非常方便,省却了我们很多初始化配置的时间,废话不多说,我们开始吧!


开始

首先查看当前容器已经安装了的所有镜像:


docker  ps -a

1

查看如下:


[root@192.168.180.218 docker]# docker ps -a

CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                                                                          NAMES

e70c3c58acca        mysql:5.7                    "docker-entrypoint.s…"   19 hours ago        Up 19 hours         0.0.0.0:3306->3306/tcp, 33060/tcp                                                                              mysql

63f558bbd445        zookeeper:latest             "/docker-entrypoint.…"   19 hours ago        Up 19 hours         2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:4180->2181/tcp                                                           zookeeper01

78a3d33d8beb        redis                        "docker-entrypoint.s…"   19 hours ago        Up 19 hours         0.0.0.0:6379->6379/tcp                                                                                         redis

ce474def30d3        morunchang/fastdfs           "sh ./storage.sh"        19 hours ago        Up 19 hours         0.0.0.0:9888->9888/tcp, 0.0.0.0:22122->22122/tcp                                                               storage

5296fa7df33d        rabbitmq                     "docker-entrypoint.s…"   19 hours ago        Up 19 hours         0.0.0.0:4369->4369/tcp, 0.0.0.0:5671-5672->5671-5672/tcp, 0.0.0.0:15672->15672/tcp, 0.0.0.0:25672->25672/tcp   rabbitmq

d5dcff5b3dfa        longhronshens/mycat-docker   "/bin/sh -c '/usr/lo…"   19 hours ago        Up 19 hours         0.0.0.0:8066->8066/tcp, 0.0.0.0:9066->9066/tcp                                                                 mycat

7deb7549689e        morunchang/fastdfs           "sh ./tracker.sh"        19 hours ago        Up 19 hours                                                                                                                        tracker

canginx                        "nginx -g 'daemon of…"   20 hours ago        Up 20 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcpde869d6704        


10

提交版本:


commit参数保存镜像, -a 提交人 -m "提交内容"


格式如下:


docker  commit  -a  -m  现有容器ID     保存的名称

1

开始:


docker commit -a "lulj"   -m  "mysql5.7"   e70c3c58acca    mysql5.7

1

内容如下:


[root@192.168.180.218 docker]#   docker commit -a "lulj"   -m  "mysql5.7"   e70c3c58acca    mysql5.7

sha256:ff320fb8d4db32f9393161acea1017909359b4180f9dc03c0c5b1b46a9cca441

1

2

使用如下命令查看镜像:


docker images

1

内容如下:


[root@192.168.180.218 docker]#  docker images

REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE

mysql5.7                     latest              ff320fb8d4db        57 seconds ago      456MB

rabbitmq                     latest              cf7986a5b16f        5 days ago          154MB

zookeeper                    latest              b6f6e4bc7eef        2 weeks ago         252MB

redis                        latest              4cdbec704e47        2 weeks ago         98.2MB

nginx                        latest              ed21b7a8aee9        2 weeks ago         127MB

mysql                        5.7                 413be204e9c3        2 weeks ago         456MB

longhronshens/mycat-docker   latest              f9a4ece7c742        2 years ago         793MB

morunchang/fastdfs           l


说明:


第一个mysql5.7就是我们刚刚打好的镜像包.


打包

我们要把镜像打成tar包,供别人使用。


命令格式:


docker save -o  要打镜像包的名称  镜像

1

演示:


docker save -o  mysql5.7.tar.gz  mysql5.7

1

内容如下:


[root@192.168.180.218 docker]#   docker save -o  mysql5.7.tar.gz  mysql5.7

[root@192.168.180.218 docker]# ll

总用量 450100

-rw-r--r-- 1 root    root      3645 4月  15 19:07 docker-compose.yml

drwxr-xr-x 4 root    root      4096 4月  15 19:07 fastdfs

drwxr-xr-x 4 root    root      4096 4月  15 19:07 mycat

drwxr-xr-x 4 root    root      4096 4月  15 19:07 mysql

-rw------- 1 root    root 460868608 4月  16 17:05 mysql5.7.tar.gz

drwxr-xr-x 8 root    root      4096 4月  15 19:07 nginx

drwxr-xr-x 5 polkitd root      4096 4月  15 19:50 rabbitmq

drwxr-xr-x 4 root    root      4096 4月  15 19:50 redis

drwxr-xr-x 5 root    root      4096 4月  15 19:07 zookeeper        a729ac95698a        3 years ago         460MB


至此打包完成。


使用

当我们在别的机器上使用的时候,命令格式:


docker load -i     镜像名

1

导入之后查看


docker  images

1

选择此镜像启动就可以了


 docker run -p 3306:3306 --name mysql5.7  -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql5.7

1

run 是开启

-d 是打入后台

-p 端口映射

:前的端口号不能被占用

–name 命个名字


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1天前
|
测试技术 持续交付 Docker
Docker in Docker原理与实战
Docker in Docker原理与实战
4 0
|
2天前
|
存储 安全 持续交付
【Docker 专栏】Docker 镜像的版本控制与管理
【5月更文挑战第9天】本文探讨了Docker镜像版本控制与管理的重要性,包括可重复性、回滚能力、协作开发和持续集成。常用方法有标签、构建参数和版本控制系统。管理策略涉及定期清理、分层管理和镜像仓库。语义化标签、环境变量和配置文件在版本控制中有应用。版本系统与Docker结合能跟踪历史和促进协作。注意点包括优化镜像大小、确保安全性和兼容性。案例分析和未来趋势展示了持续发展的镜像管理技术,为Docker应用的稳定与进步保驾护航。
【Docker 专栏】Docker 镜像的版本控制与管理
|
2天前
|
运维 安全 Docker
【Docker 专栏】Docker 镜像安全扫描与漏洞修复
【5月更文挑战第9天】Docker技术在软件开发和部署中带来便利,但其镜像安全问题不容忽视。本文探讨了Docker镜像安全扫描与漏洞修复,强调了镜像安全对应用和系统的重要性。文中介绍了静态和动态扫描方法,列举了软件漏洞、配置漏洞和恶意软件等常见安全问题,并提到了Clair和Trivy等扫描工具。修复策略包括更新软件、调整配置和重建镜像。此外,加强安全意识、规范镜像制作流程和定期扫描是管理建议。未来,将持续面对新的安全挑战,需持续研究和完善安全技术。
【Docker 专栏】Docker 镜像安全扫描与漏洞修复
|
2天前
|
Java Linux 数据安全/隐私保护
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
|
2天前
|
存储 弹性计算 运维
Docker数据集与自定义镜像:构建高效容器的关键要素
Docker数据集与自定义镜像:构建高效容器的关键要素
|
3天前
|
存储 缓存 运维
【Docker 专栏】Docker 镜像的分层存储与缓存机制
【5月更文挑战第8天】Docker 镜像采用分层存储,减少空间占用并提升构建效率。每个镜像由多个层组成,共享基础层(如 Ubuntu)和应用层。缓存机制加速构建和运行,通过检查已有层来避免重复操作。有效管理缓存,如清理无用缓存和控制大小,可优化性能。分层和缓存带来资源高效利用、快速构建和灵活管理,但也面临缓存失效和层管理挑战。理解这一机制对开发者和运维至关重要。
【Docker 专栏】Docker 镜像的分层存储与缓存机制
|
3天前
|
存储 缓存 监控
【Docker 专栏】Docker 容器性能调优实战
【5月更文挑战第8天】本文探讨了Docker容器的性能调优技巧,包括理解容器性能指标(如CPU、内存、网络和磁盘I/O)并进行相应调优。重点讲述了CPU和内存的限制设置,网络配置优化以及磁盘I/O性能提升方法。通过实例展示了如何解决高CPU使用率问题,强调了根据应用需求进行调优的重要性,以实现更高效、稳定的容器运行。
【Docker 专栏】Docker 容器性能调优实战
|
3天前
|
数据库 Docker 容器
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
【5月更文挑战第8天】Dockerfile是构建Docker镜像的关键,它包含一系列指令,用于描述应用运行环境及所需软件包。通过自动化构建,能提高效率、保证可重复性并提升灵活性。确定基础镜像、安装依赖、设置环境后,执行Dockerfile生成镜像,用于应用程序部署。虽然需要熟悉Docker技术和应用细节,但其带来的益处使其成为现代软件开发和部署的重要工具。
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
|
4天前
|
前端开发 API 数据库
【Docker专栏】Docker Compose实战:编排多容器应用
【5月更文挑战第7天】Docker Compose是Docker的多容器管理工具,通过YAML文件简化多容器应用部署。它能一键启动、停止服务,保证开发、测试和生产环境的一致性。安装后,创建`docker-compose.yml`文件定义服务,如示例中的web和db服务。使用`docker-compose up -d`启动服务,通过`docker-compose ps`、`stop`、`down`和`logs`命令管理服务。
【Docker专栏】Docker Compose实战:编排多容器应用
|
4天前
|
缓存 安全 数据安全/隐私保护
【Docker专栏】深入理解Docker镜像的构建与推送
【5月更文挑战第7天】本文介绍了Docker镜像的核心作用及基础概念,包括镜像作为容器模板的特性。文章详细阐述了Dockerfile的编写,例如设置基础镜像、工作目录、安装依赖及定义启动命令。通过`docker build`命令构建镜像,并提示了优化构建过程的技巧。此外,还讲解了如何将镜像推送到远程仓库,包括选择仓库、认证、标签和推送镜像的步骤,以及镜像安全性的考虑,如扫描漏洞和遵循最小权限原则。本文旨在帮助读者掌握Docker镜像的构建与推送,以高效管理容器化应用。
【Docker专栏】深入理解Docker镜像的构建与推送