`
happysoul
  • 浏览: 402982 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

记录使用Dockerfile创建docker镜像的操作

 
阅读更多
基于 centos6.8 版本
更新 yum
安装必要的 lib 库
安装 redis 并增加密码
从外部复制 Apache、Tomcat、Jre
配置 JAVA_HOME 环境变量


安装docker步骤略(yum install docker-io或者sudo apt-get install docker-io)
基于 centos6.8 就需要下载 6.8 的基础镜像
引用
docker pull centos:6.8


创建一个Dockerfile文件
FROM centos:6.8

#更新和安装软件源
RUN yum -y install epel-release
#这里开始都是redis依赖的库
RUN yum -y update libblkid libuuid plymouth-core-libs
RUN yum -y install dbus-glib hwdata initscripts iproute iptables iputils libdrm libpciaccess logrotate plymouth policycoreutils redhat-logos sysvinit-tool udev util-linux-ng jemalloc redis curl openssl lsof
#最后的curl openssl lsof 是我会用的一并安装了(其实curl和openssl是更新)


#修改redis配置(增加访问密码)
RUN sed -i '31i requirepass 1234567' /etc/redis.conf
#可选修改项,默认redis只能本机访问,改为0.0.0.0不限制访问来源
#RUN sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf


#复制(与Dockerfile同级有soft的文件夹)
COPY ./soft /soft

#复制文件夹后执行里面的shell
RUN sh /soft/install_tar.sh

#配置java环境变量(我使用的是解压缩方式)
ENV JAVA_HOME /usr/lib/jdk1.7.0_80
ENV JRE_HOME $JAVA_HOME/jre  
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib  
ENV PATH $PATH:$JAVA_HOME/bin  

#移除使用完的 soft 文件夹
#RUN rm -rf /soft

#默认容器启动会调用tomcat启动服务
CMD /usr/local/tomcat/bin/catalina.sh run  


摘抄 install_tar.sh 文件

#!/bin/bash
#解压缩 jdk、tomcat、apache 到指定路径
tar zxf /soft/jdk.tar.gz -C /usr/lib/
tar zxf /soft/tomcat.tar.gz -C /usr/local/
tar zxf /soft/apache.tar.gz -C /usr/local/

#给tomcat增加权限
chmod a+x /usr/local/tomcat/bin/*
#替换apache默认页面
mv /soft/datashield/index.html /usr/local/apache/htdocs/

#最终将全部配置和文件删除
rm -rf /soft


使用 Dockerfile 制作镜像(注意最后的一个点儿.不要忘了)
docker build -t 镜像的名字 .

-----------------------------------------

查看所有镜像 IMAGES
docker images

查看所有容器 CONTAINER(不加-a只能看到正在运行的容器)
docker ps -a

删除容器
docker rm 容器ID

删除镜像
docker rmi 镜像ID或者REPOSITORY名字

启动镜像(相当于用光盘安装镜像到电脑中)
docker run 镜像ID或者REPOSITORY名字   (运行结束后容器自动进入关闭Exited状态)
docker run -d --name test1 -p 127.0.0.1:10822:22 镜像ID
docker run -it 镜像ID /bin/bash    (启动镜像并进入启动的容器中进行shell操作)

启动停止容器(相当于电脑的开关机)
docker start 容器ID
docker stop 容器ID

参考文章
http://www.cnblogs.com/styshoo/p/6431748.html
分享到:
评论

相关推荐

    Docker创建镜像两种方法详解

    创建镜像有两种方法,一是使用docker commit命令,二是使用docker build命令和Dockerfile文件。这里我们说的创建镜像是指基于一个已有的基础镜像比如ubuntu等,而不是从零创建一个全新的镜像。  下面分别简单介绍...

    docker使用基础

    创建新的docker镜像 创建一个新的镜像,一般有两种方式: 编辑dockerfile,设置相关的参数,进行docker build。 运行已有的镜像,在该镜像的基础上进行修改,再将修改后的镜像另存为新的镜像。 使用命令行运行镜像:...

    Dockerfilemysql.txt

    我们可以把刚才的对容器的所有操作命令都记录到一个文件里,就像写更脚本程序。 之后用 docker build 命令以此文件为基础制作一个镜像,并会自动提交到本地仓库。 这样的话镜像的构建会变的透明化,对镜像的...

    docker中时区问题的处理方法

    这段Dockerfile代码不仅设置了TZ环境变量,还创建了一个软链接,确保`/etc/localtime`指向正确的时区文件,并写入`/etc/timezone`以记录当前时区。 总结来说,处理Docker容器的时区问题,关键是理解和利用glibc的TZ...

    docker-sphinx-doc:Sphinx的Docker映像,这是用Python编写的文档工具

    支持的标签和相应的Dockerfile链接 1.7.1 , latest ( ) 1.7.1-latex , latex ( ) 什么是狮身人面像? 是一种工具,可轻松创建智能且美观的文档。 它具有出色的工具,可以用多种语言来记录软件项目。 支持...

    【ASP.NET编程知识】ASP.NET Core利用Jaeger实现分布式追踪详解.docx

    Jaeger 提供了一个所有-in-one 的 Docker 镜像,可以快速搭建分布式追踪环境。 在 ASP.NET Core 项目中,我们需要添加两个 NuGet 包:Jaeger 和 OpenTracing.Contrib.NetCore.Unofficial。然后,我们需要配置 ...

    learnpostgress:一个入门库,用于学习应用程序中的数据库设计和使用

    运行Docker镜像以使用npm run postgres:start数据库+ Adminr 在浏览器中的本地主机(具有指定的端口)上连接到Adminr。 探索!预建命令和容器: 请参阅package.json以获取一些内置命令。项目目标该项目的目标是为...

    在主要平台上将go程序作为服务运行。_Go_下载.zip

    这会创建名为"MyGoApp"的服务,使用Go的可执行文件来运行你的应用。别忘了设置必要的环境变量和启动路径。 3. **macOS**: macOS使用`launchd`来管理服务。创建一个`plist`文件,例如`com.example.myapp.plist`,...

    Elasticsearch-2.3.5安装说明

    如果你想在Docker环境下运行Elasticsearch,可以创建一个Dockerfile,引用官方镜像,并配置所需的环境变量。这将帮助你在不同环境中轻松部署Elasticsearch。 ### 8. 图像和源代码 `imgs`目录可能包含了与Elastic...

    yshop前后端分离商城系统-其他

    7、运行docker/applicatiion目录下 docker-compose,当然之前一定要打包jar包,构建镜像 切换到Dockerfile 文件下: docker build -t yshop-admin .   3.2.1版本已经正式发布啦!: 1、秒杀列表与详情页面UI优化 2、...

    SVN迁移到GIT.doc

    不过,如果你的项目使用Docker进行部署,你可以将新的Git仓库集成到Dockerfile中,以便持续集成和构建镜像。 总结 从SVN迁移到Git是一个涉及多个步骤的过程,包括用户信息的导出、仓库的克隆、分支管理和冲突解决...

    5minkyo-ec2-server-express

    10. **Docker化**: 为了提高部署的标准化和可移植性,项目可能还使用了Docker容器化技术,通过Dockerfile定义运行环境。 11. **版本控制**: 项目名中包含“master”可能意味着使用了Git进行版本控制,确保代码的...

    backend-study-practice-101

    7. `Dockerfile`:如果项目使用Docker,会有一个文件用于定义镜像构建过程。 8. `LICENSE`:项目的开源许可协议。 后端学习实践通常涵盖以下知识点: 1. **编程语言**:如Python、Java、Node.js等,选择一种或多种...

Global site tag (gtag.js) - Google Analytics