Dockerfile构建镜像

博客给出了构建镜像的示例,介绍了目录结构,涉及Dockerfile文件,包含NGINX、PHP、MYSQL等内容,还提及了创建镜像的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构建镜像举例:

目录结构 

# tree
.
├── apps
│   ├── cmake-2.8.4.tar.gz
│   ├── libiconv-1.15.tar.gz
│   ├── mysql-boost-5.7.25.tar.gz
│   └── php-5.6.40.tar.gz
├── conf
│   ├── index.conf
│   ├── my.cnf.57
│   └── nginx.conf
├── Dockerfile_Mysql
├── Dockerfile_Ngxin
└── Dockerfile_PHP

Dockerfile文件:

NGINX

FROM centos

MAINTAINER docker_Nginx
#安装依赖关系
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
RUN sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/*.repo
RUN yum install -y wget gcc gcc-c++ curl curl-devel  openssl  openssl-devel pcre

#安装nginx
RUN useradd www
WORKDIR /usr/local/src/
RUN wget http://nginx.org/download/nginx-1.15.9.tar.gz 
RUN tar -zxf  nginx-1.15.9.tar.gz
WORKDIR /usr/local/src/nginx-1.15.9
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
RUN make && make install

WORKDIR /usr/local/nginx/conf
RUN mkdir /usr/local/nginx/conf/vhosts
RUN mv nginx.conf nginx.conf
ADD conf/nginx.conf /usr/local/nginx/conf/nginx.conf
ADD conf/index.conf /usr/local/nginx/conf/vhosts/index.conf

#端口映射
EXPOSE 80/tcp

ENV NGINX_HOME /usr/local/nginx
ENV PATH $PATH:$NGINX_HOME/sbin 

CMD ["/sbin/init"]

PHP

FROM centos

MAINTAINER docker_PHP

#安装依赖关系
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
RUN sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/*.repo
RUN yum install -y wget gcc gcc-c++ file autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd gd-devel  bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel  openssl  openssl-devel libtool libtool-devel libtool-ltdl-devel c-ares libaio mhash mcrypt libmcrypt-devel bison mariadb
RUN useradd www

#下载软件包
#RUN wget http://php.net/distributions/php-5.6.40.tar.gz -P /usr/local/src/
#RUN wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz -P /usr/local/src/
ADD apps/libiconv-1.15.tar.gz /usr/local/src/
ADD apps/php-5.6.40.tar.gz /usr/local/src/

#安装libiconv
#WORKDIR /usr/local/src/
#RUN tar -zxf libiconv-1.15.tar.gz
WORKDIR /usr/local/src/libiconv-1.15
RUN ./configure --prefix=/usr/local/
RUN make && make install

#安装PHP
#WORKDIR /usr/local/src/
#RUN tar -zxf  php-5.6.40.tar.gz
WORKDIR /usr/local/src/php-5.6.40
RUN ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc  --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-freetype-dir --with-jpeg-dir --with-gettext --with-png-dir --with-libxml-dir --with-iconv=/usr/local/ --with-zlib --with-bz2 --with-mcrypt --with-mhash --with-openssl --with-curl --with-pear --enable-mbstring --enable-gd-native-ttf --enable-zip --enable-ftp --enable-sockets --enable-calendar --enable-bcmath --enable-exif --enable-shmop --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-debug
RUN make && make install
RUN cp sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm
RUN chmod +x /etc/init.d/php-fpm
RUN mkdir /usr/local/php/log
RUN chown www.www /usr/local/php/log

WORKDIR /usr/local/php/etc
RUN cp php-fpm.conf.default php-fpm.conf
RUN cp /usr/local/src/php-5.6.40/php.ini-production /usr/local/php/etc/php.ini
RUN sed -i "s/127.0.0.1:9000/0.0.0.0:9000/g" /usr/local/php/etc/php-fpm.conf

#配置环境变量
ENV PHP_HOME /usr/local/php
ENV PATH $PATH:$PHP_HOME/bin:$PHP_HOME/sbin 

CMD ["/sbin/init"]

MYSQL

FROM centos

MAINTAINER docker_mysql

#安装依赖关系
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
RUN sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/*.repo
RUN yum install -y wget gcc gcc-c++ openssl  openssl-devel biso ncurses ncurses-devel cmake


#安装Mysql
RUN useradd mysql -s /sbin/nologin
ADD apps/mysql-boost-5.7.25.tar.gz /usr/local/src/
#ADD apps/cmake-2.8.4.tar.gz /usr/local/src
#RUN wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz -P /usr/local/src/
#WORKDIR /usr/local/src/
#RUN tar -zxf  mysql-boot-5.7.25.tar.gz

#INSTALL CMAKE
#WORKDIR /usr/local/src/cmake-2.8.4
#RUN ./configure
#RUN gmake
#RUN make && make install

#INSTALL MYSQL
WORKDIR /usr/local/src/mysql-5.7.25
RUN cmake ./ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_BOOST=boost
RUN make && make install
RUN mkdir -p /data/mysql/data
RUN mkdir -p /data/mysql/log/binlog
RUN chown mysql.mysql /data/mysql/ -R
RUN cp support-files/mysql.server /etc/init.d/mysqld
RUN chmod +x /etc/init.d/mysqld
ADD conf/my.cnf.57 /etc/my.cnf
RUN /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data/ --basedir=/usr/local/mysql

ENV MYSQL_HOME /usr/local/mysql
ENV PATH $PATH:$MYSQL_HOME/bin 

CMD ["/sbin/init"]

创建镜像命令:

//Dockerfile默认名称
# docker build -t centos/nginx:v1.59 /data/docker/docker_images/lnmp/

//Dockerfile重命名&创建多个镜像
# docker build -t centos/nginx:v1 -t centos/nginx:v2 -f Dockerfile_Ngxin /data/docker/docker_images/lnmp/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值