docker-dockerfile

docker file 

构建自定义的镜像资源

docker file 相关指令

 add与cp 用法类似,区别是add 具有解压功能

CMD与ENTRYPOINT用法类似,区别是当启动docker 时传递命令参数的话会覆盖CMD的命令参数,还有就是如果有多行CMD命令那么只有最后一行生效。

通过Dockerfile 构建镜像

常见的项目目录结构

ls  /test

nginx  php

[root@localhost test]# tree
.
├── nginx
│   ├── Dockerfile
│   ├── nginx.conf
│   └── nginx.tar.gz
└── php
├── Dockerfile
├── php.ini
└── php.tar.gz

php  dockerfile

FROM centos:7
MAINTAINER www.aliangedu.com
RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel
ADD php-5.6.31.tar.gz /tmp/

RUN cd /tmp/php-5.6.31 && 
    ./configure --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --with-mysql --with-mysqli 
    --with-openssl --with-zlib --with-curl --with-gd 
    --with-jpeg-dir --with-png-dir --with-iconv 
    --enable-fpm --enable-zip --enable-mbstring && 
    make -j 4 && 
    make install && 
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf && 
    sed -i "s/127.0.0.1/0.0.0.0/" /usr/local/php/etc/php-fpm.conf && 
    sed -i "21a daemonize = no" /usr/local/php/etc/php-fpm.conf
COPY php.ini /usr/local/php/etc

RUN rm -rf /tmp/php-5.6.31* && yum clean all

WORKDIR /usr/local/php
EXPOSE 9000
CMD ["./sbin/php-fpm", "-c", "/usr/local/php/etc/php-fpm.conf"]
View Code

java dockerfile

FROM centos:7
MAINTAINER www.aliangedu.com 

ADD jdk-8u45-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_45

ADD apache-tomcat-8.0.46.tar.gz /usr/local
COPY server.xml /usr/local/apache-tomcat-8.0.46/conf

RUN rm -f /usr/local/*.tar.gz

WORKDIR /usr/local/apache-tomcat-8.0.46
EXPOSE 8080
ENTRYPOINT ["./bin/catalina.sh", "run"]
View Code

创建镜像

docker  image  build  -t  index/image-name  -f  /path/Dockerfile  path

image 可省略,-t 指定创建镜像索引路径和名称,-f 指定Dockerfile 路径如果不写默认就是后面path路径下的名字为Dockerfile 文件,path 上下文路径:就是Dockerfile 中命令执行的路径,例如复制文件就是在这个路径下寻找要复制的文件的。

创建lnmp 环境

1、自定义网络
docker network create lnmp

2、创建PHP容器
docker run -itd 
--name lnmp_php 
--net lnmp 
--mount type=bind,src=/app/wwwroot/,dst=/usr/local/nginx/html 
php:v1

3、创建Nginx容器
docker run -itd 
--name lnmp_nginx 
--net lnmp 
--mount type=bind,src=/app/wwwroot/,dst=/usr/local/nginx/html 
nginx:v1

4、创建MySQL容器
docker run -itd 
--name lnmp_mysql 
--net lnmp 
-p 3306:3306 
--mount src=mysql-vol,dst=/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123456 
mysql --character-set-server=utf8
View Code
原文地址:https://www.cnblogs.com/fanggege/p/11900665.html