docker镜像制作及发布
以centos为例。
主要内容:安装docker,制作镜像,发布镜像。
安装docker
1. 安装docker
yum install -y docker
等待一会,安装成功,查看安装列表
2. 启动docker
systemctl start docker
3. 设置docker开机启动
systemctl enable docker
4. 查看docker状态
systemctl status docker
5. 查看docker版本
docker version
至此,docker安装成功。
制作镜像
1. 从远程仓库拉取纯净的centos镜像
查询 centos 相关的镜像
docker search centos
选取第一个官方版本,下载镜像到本地。
docker pull docker.io/centos
查看本地镜像
docker images
2. 使用镜像创建容器
创建容器
格式:docker run -dit --name=容器名 镜像id /bin/bash
docker run -dit --name container-py3 5d0da3dc9764 /bin/bash
注意红框的镜像ID。
查看当前运行中容器
docker ps
3. 进入容器
格式:docker exec -it 容器名 /bin/bash
docker exec -it container-py3 /bin/bash
4. 操作容器
安装python3环境
yum install -y python3
安装成功后。退出容器。
python3 --version
exit
5. 制作镜像
格式:docker commit -m '镜像描述' -a '制作者' 容器名 镜像名
docker commit -m 'test' -a 'yourname' container-py3 image-py3
6. 将镜像打成tar包
格式:docker save -o tar包的路径 镜像名
docker save -o /data/py3.tar image-py3
指定路径下,会有py3.tar。
7. 使用tar包
先删除本地的容器和镜像,依次操作:
docker ps #查看运行中的容器
docker stop container-py3 #停止容器
docker rm container-py3 #删除容器
docker images #查看镜像
docker rmi image-py3 #删除镜像
加载制作好的tar包
格式:docker load < tar包所在路径
docker load < /data/py3.tar
8. 使用镜像
查看镜像
创建并运行容器
docker run -dit --name container-py3 226354af8bd3 /bin/bash
进入容器
docker exec -it container-py3 /bin/bash
测试 python3 环境
python3
发布镜像
tar包形式分发不是很方便,可以将镜像发布到远程仓库。
Docker官网推出的docker仓库的一个公共服务器。
官网地址:https://hub.docker.com/
创建账号后
登录账号
docker login
退出账号
docker logout
1. 打tag
docker tag image-py3 yourname/image-py3
2. push上传
docker push yourname/image-py3
3. 查看docker仓库
上传完成后,可以在docker仓库web页面查看镜像。
4. 其他人使用,拉取镜像
docker pull yourname/image-py3
refer
https://www.cnblogs.com/pjcd-32718195/p/11762079.html
https://blog.csdn.net/qq_34244910/article/details/100545094
docker镜像制作及发布的更多相关文章
- Docker系列-(2) 镜像制作与发布
上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图 ...
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
- Jenkins集成Docker镜像实现自动发布
1. 思路&流程 Jenkins集成Docker镜像实现自动发布与Jenkins发布mavne项目思路一样总体流程 为:Jenkins 拉去远端源码 -- gitl实现应用打包 -- jenk ...
- docker研究-4 docker镜像制作
这次实验以centos镜像为基础镜像进行相关docker镜像制作. 1. 下载centos镜像 [root@localhost ~]# docker pull centosUsing default ...
- 《Docekr入门学习篇》——Docker镜像制作
Docker镜像制作 Docker镜像的构建分为两种,一种是手动构建,一种是dockerfile(自动构建) 手动构建 基于centos镜像进行构建制作Nginx镜像 [root@rbtnode1 ~ ...
- Docker 镜像制作教程:针对不同语言的精简策略
本系列文章将分为三个部分: 第一部分着重介绍多阶段构建(multi-stage builds),因为这是镜像精简之路至关重要的一环.在这部分内容中,我会解释静态链接和动态链接的区别,它们对镜像带来的影 ...
- doris 0.9.0版本docker镜像制作与使用
1. 安装docker 详情请参见本人博客 2. 编译doris 详情请参见doris官网文档 3. 在编译好的doris output文件夹下编写两个Dockerfile 3.1 Dockerfi ...
- Nginx+PHP7.3.9 Docker镜像制作
最近因项目需要制作了多个版本的php docker镜像,制作过程可谓是一波三折,因基于yum的方式安装php的方式在安装扩展插件时很不方便,不容易找到插件对应的yum源,所以PHP在docker镜像中 ...
- presto-gateway 试用以及docker 镜像制作
presto-gateway 是 lyft 团队开源 的prestodb 的工具.以下是一个简单的试用,以及碰到问题的解决 还有就是docker 镜像的制作 Dockerfile 很简单,本地构建然后 ...
随机推荐
- linux 编程随笔
Linux 命令: 在linux 系统中,所有的命令都是人为编写的程序,如 who 和 ls ,而且绝大多数都是C写的.在Linux 中增加新的命令是很简单的事,把程序的可执行文件放到以下目录就可以了 ...
- 如何用uniapp+vue开发自定义相机插件——拍照+录像功能
调用手机的相机功能并实现拍照和录像是很多APP与插件都必不可少的一个功能,今天智密科技就来分享一下如何基于uniapp + vue实现自定义相机界面,并且实现: 1: 自定义拍照 2: 自定义录像 3 ...
- 【LeetCode】442. Find All Duplicates in an Array 解题报告(Python& C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 原地变负 日期 题目地址:https://le ...
- hud-5475 An easy problem(线段树)
http://acm.hdu.edu.cn/showproblem.php?pid=5475 An easy problem Time Limit: 8000/5000 MS (Java/Others ...
- MongoDB基本介绍与安装(1)
MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...
- [炼丹术]使用Pytorch搭建模型的步骤及教程
使用Pytorch搭建模型的步骤及教程 我们知道,模型有一个特定的生命周期,了解这个为数据集建模和理解 PyTorch API 提供了指导方向.我们可以根据生命周期的每一个步骤进行设计和优化,同时更加 ...
- 基于Spring MVC + Spring + MyBatis的【银行卡系统】
资源下载:https://download.csdn.net/download/weixin_44893902/45604256 练习点设计: 删除.新增 一.语言和环境 实现语言:JAVA语言. 环 ...
- 编写Java程序,使用菜单组件制作一个记事本编辑器
返回本章节 返回作业目录 需求说明: 使用菜单组件制作一个记事本编辑器 实现思路: 创建记事本菜单工具栏JMenuBar. 创建多个菜单条JMenu. 创建多个菜单项JMenuItem. 将菜单添加至 ...
- 首次分享,大厂资深测试做Api接口自动化测试的关键思路都在这里了
引言 与UI相比,接口一旦研发完成,通常变更或重构的频率和幅度相对较小.因此做接口自动化的性价比更高,通常运用于迭代版本上线前的回归测试中. 手工做接口测试,测试数据和参数都可以由测试人员手动填写和更 ...
- ES6解构与默认值的结合使用
在读源码框架时遇到方法中有这样的形参:{ message = 'ok' } = {} 有点懵为什么已经赋值了还又赋了一个空对象 随后我去看了阮一峰老师的 ECMAScript 6 入门才明白.这是参数 ...