美文网首页
4. Dockerfile

4. Dockerfile

作者: 写代码的向日葵 | 来源:发表于2021-03-19 00:34 被阅读0次

一. Dockerfile指令

指令 描述 指令 描述
FROM 构建的新镜像是基于哪个镜像 例如:FROM centos:6 COPY 拷贝文件或目录到镜像,用法同上 例如:COPY ./start.sh /start.sh
MAINTAINER 镜像维护者姓名或邮箱地址 例如: MAINTAINER zhangsan ENTRYPOINT 运行容器时执行的Shell命令例如:ENTRYPOINT [“/bin/bash", “-c", “/start.sh"] ENTRYPOINT /bin/bash -c ‘/start.sh’
CMD 运行容器时执行的Shell命令 例如:CMD [“-c”, “/start.sh”] CMD ["/usr/sbin/sshd", "-D"] CMD /usr/sbin/sshd –D USER 为RUN、CMD和ENTRYPOINT执行命令指定运行用户 USER <user>[:<group>] or USER <UID>[:<GID>] 例如:USER zhannggsan
EXPOSE 声明容器运行的服务端口 例如:EXPOSE 80 443 WORKDIR 为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录 例如:WORKDIR /data
ENV 设置容器内环境变量例如:ENV MYSQL_ROOT_PASSWORD 123456 HEALTHCHECK 健康检查HEALTHCHECK --interval=5m --timeout=3s \ CMD curl -f http://localhost/ || exit 1
ADD 拷贝文件或目录到镜像,如果是URL或压缩包会自动下载或自动解 压ADD <src>... <dest>ADD[“<src>”,...“<dest>”]ADD https://xxx.com/html.tar.gz /var/www/htmlADD html.tar.gz /var/www/html ARG 在构建镜像时指定一些参数 例如:FROM centos:6 ARG user # ARG user=root USER $user.qq.com描述# docker build --build-arg user=lizhenliang Dockerfile .
  • RUN、CMD和ENTRYPOINT指令区别
  1. RUN在building时运行,可以写多条
  2. CMD和ENTRYPOINT在运行container时运行,只能写一条,如果写多条,最后一条生效。
  3. CMD在run时可以被COMMAND覆盖,ENTRYPOINT不会被COMMAND覆盖,但可以指定—entrypoint覆盖。

二. Build镜像命令

使用Dockerfile文件构建镜像
Usage: docker build [OPTIONS] PATH | URL | - Options:
-t, --tag list # 镜像名称
-f, --file string # 指定Dockerfile文件位置
示例: docker docker docker docker docker docker docker
build . # 默认找当前目录以Dockerfile为命名的文件 build -t shykes/myapp .
build -t shykes/myapp -f /path/Dockerfile /path build -t shykes/myapp - < Dockerfile
build -t shykes/myapp - < context.tar.gz
build -t shykes/myapp http://www.example.com/Dockerfile
build -f shykes/myapp http://www.example.com/contex.tar.gz

三. 构建PHP网站环境镜像

FROM centos:6 MAINTAINER lizhenliang
RUN yum install -y httpd php php-gd php-mysql mysql mysql-server ENV MYSQL_ROOT_PASSWORD 123456
RUN echo "<?php phpinfo()?>" > /var/www/html/index.php
ADD start.sh /start.sh
RUN chmod +x /start.sh
ADD https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz /var/www/html
COPY wp-config.php /var/www/html/wordpress
VOLUME ["/var/lib/mysql"]
CMD /start.sh
EXPOSE 80 3306
构建PHP网站环境镜像

四. 构建JAVA网站环境镜像

FROM centos:6
MAINTAINER lizhenliang
构建JAVA网站环境镜像
ADD jdk-8u45-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_45
ADD http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.45/bin/apache-
tomcat-8.0.45.tar.gz /usr/local
WORKDIR /usr/local/apache-tomcat-8.0.45 ENTRYPOINT ["bin/catalina.sh", "run"]
EXPOSE 8080

五. 构建支持SSH服务的镜像

FROM centos:6
MAINTAINER lizhenliang
ENV ROOT_PASSWORD 123456
RUN yum install -y openssh-server
RUN echo $ROOT_PASSWORD |passwd --stdin root
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
CMD ["/usr/sbin/sshd", "-D"]
EXPOSE 22

相关文章

网友评论

      本文标题:4. Dockerfile

      本文链接:https://www.haomeiwen.com/subject/lemmcltx.html