一. 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在building时运行,可以写多条
- CMD和ENTRYPOINT在运行container时运行,只能写一条,如果写多条,最后一条生效。
- 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
网友评论