常用的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文件
注: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文件

注:因爲使用的官網鏡像簡潔包小並且不容易出問題,所以直接下載運行了!

構建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文件
常用的Dockerfile文件
常用的Dockerfile文件
注: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文件
常用的Dockerfile文件
常用的Dockerfile文件
注:dockerfile構建的鏡像在運行時需要添加一些參數,例如:內存、cpu、掛載目錄、自定義網絡卷等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章