docker-dockerfile
Posted fanggege
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-dockerfile相关的知识,希望对你有一定的参考价值。
docker file
构建自定义的镜像资源
docker file 相关指令
add与cp 用法类似,区别是add 具有解压功能
CMD与ENTRYPOINT用法类似,区别是当启动docker 时传递命令参数的话会覆盖CMD的命令参数,还有就是如果有多行CMD命令那么只有最后一行生效。
通过Dockerfile 构建镜像
常见的项目目录结构
ls /test
[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"]
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"]
创建镜像
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
以上是关于docker-dockerfile的主要内容,如果未能解决你的问题,请参考以下文章