docker-dockerfile

Posted fanggege

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

以上是关于docker-dockerfile的主要内容,如果未能解决你的问题,请参考以下文章

docker-Dockerfile 创建镜像

Docker-Dockerfile学习

Docker-Dockerfile格式

docker-dockerfile使用

docker-dockerfile

Docker-Dockerfile1