常用的Dockerfile文件

实验环境

系统版本:CentOS Linux release 7.6.1810 (Core)x64

Docker版本:18.09.5

关闭防火墙并禁止开机自启

systemctl stop firewalld.service
systemctl disable firewalld

关闭selinux

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/sysconfig/selinux

重启 reboot

安装docker

1、安装docker最新版本

1)安装docker-ce的yum源

//下载yum源到本地

wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//移动yum源到/etc/yum.repos.d/目录下

mv docker-ce.repo /etc/yum.repos.d/

2)从高到低排列显示docker版本

yum list docker-ce --showduplicates | sort -r

3)安装docker最新版

yum -y install docker-ce .x86_64

注:切记启动docker并设置开机自启!

构建Dockerfile-tomcat

1、上传需要使用的压缩包

注:因为apache-tomcat-8.0.46.tar.gz压缩包网络下载太慢所以根据自身情况调整,将下载好的压缩包提前上传服务器,然后根据实际情况创建dockerfile文件即可!

2、首先创建Dockerfile-tomcat文件

cat Dockerfile-tomcat

FROM centos:7
MAINTAINER www.ctnrs.com
ENV VERSION=8.0.46
RUN yum install java-1.8.0-openjdk wget curl unzip iproute net-tools -y && \
yum clean all && \
rm -rf /var/cache/yum/*

Copy apache-tomcat-8.0.46.tar.gz .
RUN tar zxf apache-tomcat-${VERSION}.tar.gz && \
mv apache-tomcat-${VERSION} /usr/local/tomcat && \
rm -rf apache-tomcat-${VERSION}.tar.gz /usr/local/tomcat/webapps/* && \
mkdir /usr/local/tomcat/webapps/test && \
echo "ok" > /usr/local/tomcat/webapps/test/status.html && \
sed -i ‘1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"‘ /usr/local/tomcat/bin/catalina.sh && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH $PATH:/usr/local/tomcat/bin
WORKDIR /usr/local/tomcat
EXPOSE 8080
CMD ["catalina.sh", "run"]

3、生成tomcat镜像

docker build -t tomcat:v1 -f Dockerfile-tomcat .

注:dockerfile构建的镜像在运行时需要添加一些参数,例如:内存、cpu、挂载目录、自定义网络卷等等。

构建Dockerfile-Mysql镜像

注:因为自己构建的数据库不够简洁所以建议使用官方镜像!

//下载并运行mysql镜像

docker run -d --name lnmp_mysql --net lnmp --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8

注:因为使用的官网镜像简洁包小并且不容易出问题,所以直接下载运行了!

构建Dockerfile-php镜像

1、提前创建好php配置文件

php-fpm.conf php.ini

注:以上两个文件与dockerfile-php文件在同一目录,里边配置信息根据需求改正即可!

2、创建Dockerfile-php文件

cat Dockerfile-php

FROM centos:7
MAINTAINER www.ctnrs.com
RUN yum install epel-release -y && \
yum install -y gcc gcc-c++ make gd-devel libxml2-devel \
libcurl-devel libjpeg-devel libpng-devel openssl-devel \
libmcrypt-devel libxslt-devel libtidy-devel autoconf \
iproute net-tools telnet wget curl && \
yum clean all && \
rm -rf /var/cache/yum/*

RUN wget http://docs.php.net/distributions/php-5.6.36.tar.gz && \
tar zxf php-5.6.36.tar.gz && \
cd php-5.6.36 && \
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm --enable-opcache \
--with-mysql --with-mysqli --with-pdo-mysql \
--with-openssl --with-zlib --with-curl --with-gd \
--with-jpeg-dir --with-png-dir --with-freetype-dir \
--enable-mbstring --with-mcrypt --enable-hash && \
make -j 4 && make install && \
cp php.ini-production /usr/local/php/etc/php.ini && \
cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf && \
sed -i "90a \daemonize = no" /usr/local/php/etc/php-fpm.conf && \
mkdir /usr/local/php/log && \
cd / && rm -rf php* && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/php/sbin
COPY php.ini /usr/local/php/etc/
COPY php-fpm.conf /usr/local/php/etc/
WORKDIR /usr/local/php
EXPOSE 9000
CMD ["php-fpm"]

3、生成php镜像

docker build -t hph:v1 -f Dockerfile-php .



注:dockerfile构建的镜像在运行时需要添加一些参数,例如:内存、cpu、挂载目录、自定义网络卷等等。

构建Dockerfile-Nginx镜像

1、创建dockerfile-nginx配置文件

nginx.conf

注:以上两个文件与dockerfile-nginx文件在同一目录,里边配置信息根据需求改正即可!

2、创建Dockerfile-Nginx文件

cat Dockerfile-nginx

FROM centos:7
MAINTAINER www.ctnrs.com
RUN yum install -y gcc gcc-c++ make \
openssl-devel pcre-devel gd-devel \
iproute net-tools telnet wget curl && \
yum clean all && \
rm -rf /var/cache/yum/
RUN wget http://nginx.org/download/nginx-1.15.5.tar.gz && \
tar zxf nginx-1.15.5.tar.gz && \
cd nginx-1.15.5 && \
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module && \
make -j 4 && make install && \
rm -rf /usr/local/nginx/html/
&& \
echo "ok" >> /usr/local/nginx/html/status.html && \
cd / && rm -rf nginx-1.12.2* && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH $PATH:/usr/local/nginx/sbin
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

2、生成nginx镜像

docker build -t nginx:v1 -f Dockerfile-nginx .



注:dockerfile构建的镜像在运行时需要添加一些参数,例如:内存、cpu、挂载目录、自定义网络卷等等。

原文地址:https://blog.51cto.com/13043516/2398484

时间: 2024-10-04 17:48:37

常用的Dockerfile文件的相关文章

Dockerfile文件那些事(一)

Dockerfile文件那些事(一) Dockerfile是用来构建镜像的,该文件中有这么几个指令: FROM MAINTAINER RUN EXPOSE   上面这四个指令以后咱们慢慢说他们的作用   还有几个常用的指令: CMD ENTERYPOINT ADD COPY VOLUME WORKDIR ENV USER 这些命令就算我都说了也记不住,咱们边学边记忆. 先说下Dockerfile构建过程 1.从基础镜像运行一个容器 2.执行一条指令,对容器作出修改 3.执行类似docker co

Dockerfile文件详解 (转)(原文地址:https://www.cnblogs.com/panwenbin-logs/p/8007348.html)

什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指令自动生成映像. docker build命令用于从Dockerfile构建映像.可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile. 例: docker build -f /path/to/a/Dockerfile Dockerfile的基本结构 Dockerfile 一般分为四部分:

Linux 常用命令之文件和目录

1. cd 命令格式:cd  [dirName](cd和目录之间使用空格隔开) 作用:切换当前目录至dirName. 实例: cd /home 切换当前目录到/home (查看当前目录命令为pwd) cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd ~ 进入个人的主目录 2. ls 命令格式:ls [选项] [目录名] (目录名为空时表示当前目录) 作用: 查看目录中的文件 常用选项: -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件. -l 除了文件名之外,

[C#] 常用工具类——文件操作类

/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在</para> /// <para> IsImgFilename:判断文件名是否为浏览器可以直接显示的图片文件名</para> /// <para> CopyFiles:复制指定目录的所有文件</para> /// <para> MoveFi

c#常用工具类:文件和二进制转换

//================二进制相关转换类============== #region 将文件转换为二进制数组 /// <summary> /// 将文件转换为二进制数组 /// </summary> /// <param name="FilePath">文件完整路径</param> /// <returns>二进制数组</returns> public static byte[] FileToBinar

docker-maven-plugin 完全免Dockerfile 文件

# DockerSpringBootPlugin docker-maven-plugin 完全免Dockerfile 文件 使用docker-maven-plugin 进行完全免 Dockerfile 文件 注意 EXPOSE 在spring boot 中不起作用 Mvnen : mvn clean package docker:build <build> <plugins> <plugin> <groupId>org.springframework.boo

Linux常用命令之文件和目录操作命令

以下是linux操作系统常用的文件和目录操作命令: cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls *[0-9]* 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构(1)

Docker定制容器镜像(利用Dockerfile文件)

1.创建Dockerfile文件 新建一个目录,在里面新建一个dockerfile文件(新建一个的目录,主要是为了和以防和其它dockerfile混乱 ) [[email protected] myfiles]# mkdir centos6.8_dockerfile [[email protected] myfiles]# [[email protected] myfiles]# cd centos6.8_dockerfile/ 创建dockerfile文件(vim Dockerfile) #

Dockerfile 文件

Dockerfile文件可以使用docker build 命令快速生成镜像指令如下: FROM   <iFmages>                   //用来指定从哪个镜像的基础上开始创建新的镜像 MAINTAINER  <author>              //设置镜像作者 RUN  <command>                    //设置 shell 或者 exec 执行的命令 ADD  <source> <destinaio