Docker 之 构建镜像

构建镜像的两种方式,无论哪种方式,创建新镜像都需要依赖一个已有的标准镜像文件

1、通过Docker commit 来保存当前容器内容为一个新镜像

$ docker commit container_name  new_image_name

2、通过Dockerfile文件构建新镜像

编辑Dockerfile文件
#FROM必须是第一行,指明要基于哪个镜像进行构建
FROM daocloud.io/centos:7
#多行标签
LABEL com.example.version="0.0.1"\ com.example.release-date="2017-05-25"
#将同Dockerfile文件目录下的文件拷贝到镜像的指定目录下
COPY shm.jar /usr/local/
COPY jdk1.8 /usr/local/
#设置镜像的环境变量
ENV JAVA_HOME=/usr/local/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
#指定容器被运行时,自动执行的命令,方便服务镜像的使用
CMD /usr/bin/touch /usr/local/shm.log &&\
      java -jar /usr/local/shm.jar &> /usr/local/shm.log &
#曝光运行该镜像容器的端口
EXPOSE 9090

构建镜像

# 注意最后的 .  这个点指定Dockerfile所在的当前目录
docker build -t image_name:tag .

运行镜像
docker run -idt --name container_name -p port:port image_name:tag shell

docker run -idt --name mysql -p 3306:3306 local/mysql:1.0 /bin/bash
时间: 2024-09-20 09:07:22

Docker 之 构建镜像的相关文章

百闻不如一战:“Docker巨好玩”镜像构建挑战赛

问题描述 4月28日,由云雀科技主办的,正式开启啦!本次挑战赛是国内第一场以Docker为主题的线上竞赛,旨在普及Docker知识,推动国内Docker生态系统的建设,为Docker爱好者和使用者提供一个实战平台.Docker技术已经在国内的开源市场方兴未艾,各种线上线下的讲座层出不穷.然而,知识的积累只是掌握一门技术的前提,深入的实践才能成为专家.所以,本次挑战赛依托这个简单易用的平台,为开发者提供一个学以致用的机会,还有机会拿大奖! 挑战赛主题Docker的魅力不仅在于提高资源利用率,更在于

Docker之构建Nginx镜像实现迅速搭建Google反代站点

镜像用法 自备证书用法 docker run -d --name=google \ -p 80:80 -p 443:443 \ -v 系统上存放ssl证书的目录:/usr/local/nginx/conf/ssl \ -e PROXY_GOOGLE=On \ -e PROXY_SSL_CRT_KEY=On \ -e PROXY_CRT=你的crt名称 \ -e PROXY_KEY=你的key名称 \ -e PROXY_DOMAIN=你的域名 \ benyoo/nginx_build:proxy_

10张图带你深入理解Docker容器和镜像

本文讲的是10张图带你深入理解Docker容器和镜像,[编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难.于是,我花了几周的时间来学习Docker的工作原理,更确切地说,是关于Doc

Docker基础之七: 镜像操作

构建镜像 (对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面.) 镜像(Image)是容器的基础.当你运行docker run的时候,你会指定一个Image来运行.比如,最基本的ubuntu镜像和training/webapp镜像. 在上一节中,我们是从Docker Hub下载的ubuntu镜像.在本节中,我们将做如下操作: 管理和运行你的本地镜像 创建基础镜像 1 查看本机的镜像 root@gctest:~/.ghostc

为什么我们选择Docker来构建Crayon的数据处理平台

本文讲的是为什么我们选择Docker来构建Crayon的数据处理平台,[编者的话]随着Hadoop成为大数据的事实标准,Hadoop的生态也在不断完善,环境搭建的复杂性,给开发和测试带来了不便.如何用Docker来降低Hadoop开发中的复杂性,本文中Crayon带来了他们的方案. 之前,企业软件厂商都会尽可能多的控制客户的基础安装环境,因为如果安装环境出错,就可能引起很多不必要的麻烦,甚至大灾难. 最初,公司提供一个包含定制的操作系统镜像的应用,操作系统镜像作为软件安装的其中一份子,它给予了厂

Docker alpine构建nginx环境的教程

Docker alpine构建nginx 1,pull一个基础镜像 至于如何pull自己的镜像和构建镜像可以参考Docker Hub简单使用也可以pull本章中的docker hub的镜像 [root@gitlab conf]# docker pull marksugar/alpine Using default tag: latest latest: Pulling from marksugar/alpine e110a4a17941: Already exists 92c6475c18dd:

Dockerfile 构建镜像 - 每天5分钟玩转容器技术(13)

Dockerfile 是一个文本文件,记录了镜像构建的所有步骤. 第一个 Dockerfile 用 Dockerfile 创建上节的 ubuntu-with-vi,其内容则为: 下面我们运行 docker build 命令构建镜像并详细分析每个细节. root@ubuntu:~# pwd         ①   /root   root@ubuntu:~# ls          ②    Dockerfile    root@ubuntu:~# docker build -t ubuntu-w

构建镜像 - 每天5分钟玩转容器技术(12)

对于 Docker 用户来说,最好的情况是不需要自己创建镜像.几乎所有常用的数据库.中间件.应用软件等都有现成的 Docker 官方镜像或其他人和组织创建的镜像,我们只需要稍作配置就可以直接使用. 使用现成镜像的好处除了省去自己做镜像的工作量外,更重要的是可以利用前人的经验.特别是使用那些官方镜像,因为 Docker 的工程师知道如何更好的在容器中运行软件. 当然,某些情况下我们也不得不自己构建镜像,比如: 找不到现成的镜像,比如自己开发的应用程序. 需要在镜像中加入特定的功能,比如官方镜像几乎

docker 使用centos 镜像 运行 javaweb ,并重新生成镜像

Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了.作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器.镜像等,随后将使用 Docker 搭建一个 JavaWeb 运行环境,最后