文档章节

制作自己的镜像(二)

一群河马
 一群河马
发布于 2016/05/20 16:59
字数 403
阅读 28
收藏 0

制作自己的镜像(二)

使用dockerfile

docker commit方式创建镜像比较直观.但是不容易分发共享.还有种方法比较常用,就是使用dockerfile

新建两个目录,创建两个文件

[root@srv00 ~]# mkdir df && cd df
[root@srv00 df]# cat nginx.repo 
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@srv00 df]# cat Dockerfile 
FROM centos:latest
MAINTAINER hippo <x@xxx.com>
COPY nginx.repo /etc/yum.repos.d/
RUN yum install -y nginx && echo "daemon off;" >> /etc/nginx/nginx.conf 
EXPOSE 80
CMD ["nginx"]

Dockerfile是默认文件名,docker build -f来指定自定义文件 一行一条指令.有点像shell. FROM基于哪个镜像.MAINTAINER维护者信息.COPY将本地文件copy到镜像目录中. RUN在镜像中运行的命令. EXPOSE暴露端口号给外部映射.CMD如果运行容器会执行的命令.(控制台执行.不然容器会马上退出).

运行docker build

[root@srv00 df]# docker build -t hippo/nginx:v1 .
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM centos:latest
 ---> 8596123a638e
Step 2 : MAINTAINER hippo <x@xxx.com>
 ---> Using cache
 ---> c04988102337
Step 3 : COPY nginx.repo /etc/yum.repos.d/
 ---> 840a6358f3d1
Removing intermediate container 8cb81de3f7e9
Step 4 : RUN yum install -y nginx && echo "daemon off;" >> /etc/nginx/nginx.conf
 ---> Running in 5a27d8a4bc77
Loaded plugins: fastestmirror, ovl
......
Complete!
 ---> 45b53927ed9a
Removing intermediate container 5a27d8a4bc77
Step 5 : EXPOSE 80
 ---> Running in f022d6097efa
 ---> 29429605ebc7
Removing intermediate container f022d6097efa
Step 6 : CMD nginx
 ---> Running in c7faa5042715
 ---> 2e1513eeaa0a
Removing intermediate container c7faa5042715
Successfully built 2e1513eeaa0a

每条指令都相当于git commit一次.

运行测试下

[root@srv00 df]# docker run -d -p 80 hippo/nginx:v1
dead20777b6c1609ab968966b3589904d44f8a12c124c178fd5cb540052cce6f
[root@srv00 df]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
dead20777b6c        hippo/nginx:v1      "nginx"                  11 seconds ago      Up 8 seconds        0.0.0.0:32771->80/tcp     gloomy_cray
[root@srv00 df]# curl -L localhost:32771
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
......

//END

© 著作权归作者所有

上一篇: docker的网络
一群河马
粉丝 6
博文 74
码字总数 49404
作品 0
浦东
架构师
私信 提问
Hulk容器服务的镜像CI解决方案

Hulk容器服务的镜像CI解决方案 奇虎360-addops2017-08-089 阅读 解决方案服务ci 前言 纯手工捣鼓Docker镜像 UI页面化、自动化地生产Docker镜像 前言 巧妇难为无米之炊,玩容器,“镜像”就是...

奇虎360-addops
2017/08/08
0
0
往dockerhub上上传镜像

往dockerhub上上传镜像 一、首先注册一个账号 然后点击Create->Create Repository 输入自己的账号名,然后在设置仓库名 如用户名:wangzhenwei , 仓库名:its 二、然后给本地镜像打标签: ...

王振威
2018/07/25
0
0
制作ubuntu系统u盘镜像,以及安装

最近想学习linux,于是想在自己的xp上装个ubuntu,经过一系列查询资料,和几次失败终于最后从制作u盘启动到安装系统成功。 一、制作u盘镜像 1.1 下载ubuntu12.4镜像 1.2 使用工具ultraiso将i...

骑猴上树
2014/10/11
0
0
详解使用DockerHub官方的mysql镜像生成容器

写在前面:看到网上关于利用DockerHub官方的mysql镜像生成容器此类的文档比较少,故结合自身实践分享给大家,还望多多指教。 我的需求:利用docker 镜像快速建立一个mysql容器。 于是我去找度...

yope
2016/08/20
1K
0
Docker实战(二):制作自己的Docker镜像

Docker实战(二):制作自己的Docker镜像 2015年11月17日 00:54:02 阅读数:16520 标签: Docker 更多 个人分类: Docker 制作自己的Docker镜像 制作自己的Docker镜像主要有如下两种方式: ...

linjin200
2018/08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式架构 实现分布式锁的常见方式

一、我们为什么需要分布式锁? 在单机时代,虽然不需要分布式锁,但也面临过类似的问题,只不过在单机的情况下,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制...

太猪-YJ
37分钟前
3
0
GitLab Docker 安装记录

安装环境 环境Centos7.4 64 1.拉取镜像文件 docker pull gitlab/gitlab-ce:latest 2.docker 安装 git.zddts.com 为访问域名或换成可以访问的IP docker run -d --hostname git.***.com -p ......

侠者圣
今天
0
0
部署kubernates dashboard

参考官方文档: https://github.com/kubernetes/dashboard 直接部署官方默认的dashboard: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/r......

猫海豚
今天
0
0
Docker中Redis的安装

一、下载镜像 docker pull redis 二、创建外挂目录及配置 mkdir /opt/docker/redismkdir /opt/docker/redis/confmkdir /opt/docker/redis/data 三、安装 docker run -d --name compose_r......

闊苡訆涐囍醣
今天
0
0
JNI内存泄露处理方法汇总

在c++中new的对象,如果不返回java,必须用release掉,否则内存泄露。包括NewStringUTF,NewObject。如果返回java不必release,java会自己回收。   jstring jstr = env->NewStringUTF((*p)....

shzwork
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部