有没有学室内设计的学校,百度seo排名优化费用,常用的建站软件有哪些,建设工程造价网站Dockerfile
官网地址
https://docs.docker.com/engine/reference/builder/Dockerfile其实就是我们用来构建Docker镜像的源码#xff0c;当然这不是所谓的编程源码#xff0c;而是一些命令的集合#xff0c;只要理解它的逻辑和语法格式#xff0c;就可以很容易的编写Docke…Dockerfile
官网地址
https://docs.docker.com/engine/reference/builder/Dockerfile其实就是我们用来构建Docker镜像的源码当然这不是所谓的编程源码而是一些命令的集合只要理解它的逻辑和语法格式就可以很容易的编写Dockerfile。简单点说Dockerfile可以让用户个性化定制Docker镜像。因为工作环境中的需求各式各样网络上的镜像很难满足实际的需求。
Dockerfile的基本结构
Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。
docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用 -f 标志指向文件系统中任何位置的Dockerfile。
Dockerfile由一行行命令语句组成并且支持以#开头的注释行
Dockerfile分为四部分基础镜像信息、维护者信息、 镜像操作指令和容器启动时执行指令
Dockerfile文件说明
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像第一条指令必须是FROM。一个声明以 字符开头则被视为注释。可以在Docker文件中使用 RUN CMD FROM EXPOSE ENV 等指令。
Dockerfile常见命令
命令说明FROM指定基础镜像必须为第一个命令MAINTAINER维护者(作者)信息ENV设置环境变量RUN构建镜像时执行的命令CMD构建容器后调用也就是在容器启动时才进行调用。ENTRYPOINT指定运行容器启动过程执行命令覆盖CMD参数ENTRYPOINT与CMD非常类似不同的是通过docker run执行的命令不会覆盖ENTRYPOINT而docker run命令中指定的任何参数都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令多指定时会覆盖前面的设置而只执行最后的ENTRYPOINT指令。ADD将本地文件添加到容器中tar类型文件会自动解压(网络压缩资源不会被解压)可以访问网络资源类似wgetCOPY功能类似ADD但是是不会自动解压文件也不能访问网络资源WORKDIR工作目录类似于cd命令ARG用于指定传递给构建运行时的变量VOLUMN用于指定持久化目录EXPOSE指定于外界交互的端口USER指定运行容器时的用户名或 UID后续的 RUN 也会使用指定用户。使用USER指定用户时可以使用用户名、UID或GID或是两者的组合。当服务不需要管理员权限时可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
IDEA安装docker插件
idea安装docker插件。Dockerfile、docker-compose.yml文件大部分内容会有提示信息。方便开发人员编写配置文件。
https://plugins.jetbrains.com/plugin/7724-docker/versions制作自定义镜像
build命令
docker build 命令用于使用 Dockerfile 创建镜像。
# 语法
docker build [OPTIONS] PATH | URL | -常用参数
build命令参数特别多。这里只给大家介绍几个常用的参数如果小伙伴们想了解更多内容请参考docker官网手册。
–build-arg[] : 设置镜像创建时的变量-f : 指定要使用的Dockerfile路径–rm : 设置镜像成功后删除中间容器–tag, -t: 镜像的名字及标签通常 name:tag 或者 name 格式可以在一次构建中为一个镜像设置多个标签。
制作MySQL镜像
MySQL镜像官方镜像默认为世界时钟我们要制作成中国的东八区。
制作dockerfile文件
FROM mysql:5.7.31
# 作者信息
MAINTAINER mysql from date UTC by Asia/Shanghai ycyc.com
ENV TZ Asia/Shanghai创建自定义镜像
# 不指定dockerfile路径默认使用当前路径下dockerfile文件
docker build -t mysql:5.7.31-zh .启动自定义mysql
# 启动mysqlmysql需要设置默认密码
docker run -itd --name mysql -e MYSQL_ROOT_PASSWORDroot mysql:5.7.31-zh
# 进入容器观察时间
docker exec -it mysql bash
date