5.docker image (镜像)
1.image 是什么
是文件和 meta data 的集合 (root filesystem)
是分层的,并且每一层都可以添加改变删除文件,成为一个新的image
不同的image可以共享相同的layer #4 和 #2 可以共享 centos image
image 本身是只读的

2.image的获取
从文件( dockerFile )获取
dockerFile内容如下
FROM ubantu_16_04 #基础 image 为 ubantu_16_04 类似于操作系统为 ubantu 16 04
LABEL maintainer="eaon <eaon@163.com>" #基本标识 例如作者和邮箱
RUN apt-get update && apt-get install -y redis-server #在 基础image 上运行一段 安装程序的命令
EXPOSE 6379 #要暴露的端口号
ENTRYPOINT [ "/usr/bin/redis-server" ] # 程序的入口
从 dockerFile 运行
docker build -t eaon03/redis:latest . #表示从当前的 dockerFile 建立名为 eaon03/redis:latest 的镜像
从 registry 拉取 ( 从远程仓库拉取 registry 类似与 github )
如果 docker 太慢或者超时 可以切换docker源
sudo docker pull hello-world
(具体的镜像 可以从 hub.docker.com 上进行加下载)
sudo docker image ls 查看本地的image列表
3.制作base image (例如 hello-world)
创建一个hello-world 目录 并 进入
mkdir hello-world
cd hello-world
写一个 .c 文件
vim hello.c
#include<stdio.h>
int main()
{printf("hello docker!\n");}
安装 gcc glibc-static
sudo yum install -y gcc glibc-static
编译 c 文件为二进制文件
gcc -static hello.c -o hello
编写Dockerfile
vim Dockerfile
FROM scratch
ADD hello /
CMD ["/hello"]
添加镜像
docker build -t eaon/hello-world .
运行镜像
docker run eaon/hello-world
4.centos 虚拟机去除 sudo
1. 添加docker 用户组
sudo groupadd docker
2.将vagrant 用户 添加到 docker 用户组内
sudo gpasswd -a vagrant docker
3.重启docker 进程
sudo service docker restart
4.重新登陆
5.docker image (镜像)的更多相关文章
- Docker:镜像操作和容器操作
镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6b ...
- Docker的镜像
镜像是容器的运行基础,容器是镜像运行后台的形态 镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上 镜像的系统结构 ...
- Docker - Docker国内镜像的配置及使用
Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...
- Docker image 镜像介绍
操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...
- Docker - 定制镜像
Dockerfile Docker Hub拥有大量高质的官方镜像:可直接使用的服务类镜像.语言应用镜像.基础操作系统镜像等,满足绝大部分需求. 此外,可以通过定制镜像的方式来满足实际使用中的特定需求. ...
- 从零开始构建docker基础镜像
段子 今年基本已经结束了,我问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我 ...
- Docker 基础 : 镜像
目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一.Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的 ...
- 微服务架构 - 搭建docker本地镜像仓库并提供权限校验及UI界面
搭建docker本地镜像仓库并提供权限校验及UI界面 docker本地镜像仓库的作用跟maven私服差不多,特别是公司级或者是小组级开发好的docker仓库可以上传到本地镜像仓库中,需要用时,直接从本 ...
- 使用Nexus3构建Docker私有镜像仓库
一.安装Nexus3 Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven.npm.Docker.YUM.Helm等格式数据的存储和发布:并 ...
- Docker JDK镜像
Docker jdk镜像 说明 使用alpine-glibc作为基础镜像 JAVA JDK/JRE以1.8为基准 下载文件 1.下载JDK/JRE压缩包. jre-8u201-linux-x64.ta ...
随机推荐
- python 虚拟环境的安装
方式一 1. pip install virtualenv 2. virtualenv 虚拟环境的名字 3. mac上 source + 虚拟环境的目录/bin/activate win上 直接进入虚 ...
- NSPredicate实现数据筛选
一:基本语法 1.什么是NSPredicate apple官方文档这样写的: The NSPredicate class is used to define logical conditions us ...
- 为什么vue中的data用return返回
1.为什么在项目中data需要使用return返回数据呢? 不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件. 当一 ...
- python---生成式
1.[(x,y) for x in [1,2,3] for y in [4,2,3] if x == y] (x,y):输出表达式,产生最终列表的元素 for x in [1,2,3] for y i ...
- 每天一点点之javascript(ES6) - Map对象
1.语法 键/值对的集合. mapObj = new Map() 注:集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 2.属性下表列出了 Map 对象的属性和描述. 构 ...
- CSS属性之float浮动属性
float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素. float有四个属性 ...
- Vue组件template模板字符串几种写法
在定义Vue组件时,组件的模板template选项需要的是一个字符串,当其内容较复杂需要换行时,需要简单处理一下,具体有五种方式: 方式一:使用 \ 转义换行符 <!DOCTYPE html&g ...
- 基于百度语音识别API的Python语音识别小程序
一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...
- HyperLedger Cello学习笔记
HyperLedger Cello学习笔记 转载请注明出处:HyperLedger Cello学习笔记 概述 Hyperledger Cello是Hyperledger下的一个子项目,其主要功能如下: ...
- GFlags 处理内存越界、野指针问题研究
从官方文档可以看到,从gflags的GUI上,我们是无法判断他打开的是full page heap verification 还是Standard page heap verification, 所以 ...