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