docker 2 dockerfile

docker2

标签(空格分隔): docker


Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

创建dockerfile

mkdir -p /opt/dockerfile
固定名字 dockerfile
标准化 Dockerfile

怎么写

yml格式
FROM centos:7.5

FROM:
    Syntax:
        centos:6.9
        centos@哈希值

RUN 运行BASH命令

创建本地ftp yum源 比较快

mv /etc/yum.repos.d/*.repo /tmp && echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos6.9\ngpgcheck=0"
RUN:
    Syntax:
         mv /etc/yum.repos.d/*.repo /tmp && echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos6.9\ngpgcheck=0"
         ["mysqld","--initialize-insecure","--user=mysql","--basedir=/usr/local/mysql"," --datadir=/data/mysql/data"]
         

RUN 可以写多个。。。。


CMD 标识结束 手动启用命令

CMD ["/usr/sbin/sshd","-D"]

CMD
    Syntax:
        ["/usr/sbin/sshd","-D"]

EXPOSE 向外暴露的端口

EXPOSE
    Syntax:
        EXPOSE 22

使用docker file

docker image build -t 'asdasd@centos7' ./dockerfile

docker file的引用

copy

宿主机的文件拷贝到docker里面去

COPY index.php /var/www/html/

自带解压的copy
ADD bbs.tar.gz /var/www/html

copy 
    Syntax:
        src宿主机路径 dest容器内的路径
        
        
add
    Syntax:
        src宿主机路径 dest容器内的路径
        src宿主机路径 dest容器内的路径

ADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:

  • ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
  • ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

ENV变量

ENV CODE_DIR = "/var/www/html"

ENV DATADIR = "/data/mysql/data"

ADD bbs.tar.gz ${CODE_DIR}

ENTRYPOINT

ENTRYPOINT 启动容器时 第一进程 无法被替换掉

ENTRYPOINT ["java","-jar","/app.jar"]

其实 CMD 可以被替换掉

启动dockerFile

进入到含有dockerFile的路径
podman build -t fastdfs-storage1 .

docker build -t 名字 路径

完整的dockerfile


posted @ 2021-03-08 17:27  gidos  阅读(53)  评论(0编辑  收藏  举报