首页 » SEO优化 » phpparma技巧_DockeFIile常识点总结和宣告自己的镜像

phpparma技巧_DockeFIile常识点总结和宣告自己的镜像

duote123 2024-11-19 0

扫一扫用手机浏览

文章目录 [+]

`dockerfile`是一个包含用于组合镜像的命令的文本文档,可以在命令中调用任何命令, docker通过读取Dockerfile中的指令自动天生镜像

2.dockerfile的基本构造

`dockerfile`一样平常分为四部分: 基本镜像信息, 掩护者信息, 镜像操作指令, 容器启动时的实行指令, `#`为`dockerfile`中的注释3

3.dockerfile的常用指令

phpparma技巧_DockeFIile常识点总结和宣告自己的镜像

常用指令一样平常都要大写

phpparma技巧_DockeFIile常识点总结和宣告自己的镜像
(图片来自网络侵删)

FROM:指定根本镜像,必须是第一个命令

#格式:

FROM image

FROM image:tag

FROM image@digest

#如

FROM mysql:5.7 #如不指定tag或digest,则利用lastest版本

MAINTAINER:掩护者信息

#格式

MAINTAINER name+email

MAINTAINER name

MAINTAINER email

#如

MAINTAINER jame 123@gmail.com

RUN:构建镜像时实行的命令

#格式

RUN command

#如

RUN ["executable","param1","param2"]

#RUN指令创建的中间镜像会被缓存,并会下次构建中利用,如果不想利用,可以利用 --no-cache参数,如:

docker build --no-cache

ADD:将本地文件添加到容器中

#格式

ADD src dest

ADD ["src",...,"desc"] #用于支持包含空格的路径

#如

ADD test /mydir

ADD test?.txt /mydir

ADD t /mydir

COPY功能和ADD类似,差异如下

#差异

ADD 对付添加tar类型文件,可以自动解压

ADD 可以访问网络资源

COPY 不可自动解压也不可访问网络资源

CMD:构建容器这后利用

#格式

CMD ["executable","param1","param2"]

CMD command parma1 param2

#如

CMD echo "hello"

#CMD不同于RUN,CMD用于指定在容器启动时所要实行的命令,RUN是用于指定镜像构建时所有利用的实行的命令

ENTRYPOINT:配置容器,与CMD类似

#格式

ENTRYPOINT ["executable","param1","param2"]

ENTRYPOINT command param2,param3

#如

ENTRYPOINT ["top","-b"]

#与CMD不同点

#docker run 实行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当作参数再次通报给ENTRYPOINT,Dockerfile中只许可有一个ENTRYPOINT命令,多指定会覆盖前面的设置,而只实行末了的ENTRYPOINT指令

LABEL:用于为镜像添加元数据

#格式

LABEL key=value key=value ...

#如

LABEL version=1.0 description="hello world"

#利用LABEL指定元数据时,一条LABEL可以指定一或多条元数据,多条元数据通过空格分格

ENV:设置环境变量

#格式

ENV key value #这种格式的只能设置一个变量

ENV key=value #可以设置成多个

#如

ENV name centos

ENV name=123

EXPOSE:指定与外界交互的端口

#格式

EXPOSE port ...

#如

EXPOSE 80,443

EXPOSE 11211/tcp 11211/udp

#EXPOSE并不会让容器的端口访问到主机,须要在docker run运行时通过 -p 来发布这些端口,或者通过-P参数来发布EXPOSE导出的所有端口

VOLUME:用于指定持久化目录

#格式

VOLUME ["/path/to/dir"]

#如

VOLUME ["/data"]

VOLUME ["/var/www","/var/log/test"]

#一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统

#卷可以容器间共享和重用

#容器并不一定要和其它容器共享卷

#修正卷后会立即生效

#对卷的修正不会对镜像产生影响

#卷会一贯在,直到没有容器利用它

WORKDIR:事情目录,类似于CD命令

#格式

WORKDIR /path

#如

WORKDIR /a #这时事情目录为/a

#设置WORKDIR事情目录里,Dockerfile中其后的命令,RUN,CMD,ENTRYPOINT,ADD,COPY等命令都会在这个目录实行

USER:指定运行容器时的用户名或UID,后面的RUN也会利用指定用户,当做事不须要管理员权限时,可以通过该命令指定运行用户

#格式

USER user

USER user:group

USER uid

USER gid

USER uid:gid

USER uid:group

#如

USER www

#利用USER指定用户后,Dockerfile中其后的命令RUN,CMD,ENTRYPOINTf都将利用这个用户

ARG:用于指定通报给构建运行时的变量

#格式

ARG name

ARG name=valuue

#如

ARG site

ARG name=123

ONBUILD:用于设置镜像触发器

#格式

ONBUILD [INSTRUCTION]

#如

ONBUILD ADD ./app

#当所构建的镜像被用作其它镜像的根本镜像,该镜像中的触发器会被触发

实战:定制自己的 centos

由于官方centos里没有vim ,ficonfig等工具,先来个大略点的学习一下,从打包到发布的流程,后面再构建nginx,php,mysql,redis各自的dockerfile文件,搭建自己的开拓环境 !

编写dockerfile文件

#dockerfile文件如下

FROM centos #根本镜像

#MAINTANER 123 123@gmail.com 现在官方推举利用 LABEL标签利用

LABEL maintaner=123@gmail.com

#设置环境变量

ENV PATH=/usr/local

#设置事情目录

WORKDIR $PATH

#创建容器时实行的命令

RUN yum install -y vim && yum -y net-tools

#暴露端口

EXPOSE 80

# 镜像构建完成后实行的命令

CMD echo "===success======="

#以/bin/bash运行

CMD /bin/bash

通过dockerfile构建镜像

#利用命令 docker build 命令

#常用参数如下:

-f #指定dockerfile文件

-t #指定镜像标签

#打包命令如下,把稳末了那个点别丢了,代表当前目录

docker bulid -f mydockerfile -t mycentos:1.0 .

查看镜像构建的过程,可以利用docker history 镜像id来查看

#查看一下nginx的构建过程

docker history nginx

发布自己的镜像

发布地址: Dockerhub,阿里云

发布到Dokerhub上注册账号并登录在做事器上向Dockerhub提交

#利用 docker login 命令登录

#利用 docker push 发布镜像

利用 docker login -u 用户名 -p 密码

登录成功如下:

利用 docker push 命令发布镜像到dockerhub,结果报错

denied: requested access to the resource is denied

#办理办法:

在build自己的镜像的时候添加tag时必须在前面加上自己的dockerhub的username,然后再push就可以了

#我这里利用 docker tag 命令修正标签

#命令如下:

docker tag mycentos:1.0 lnssm/mycentos:1.0

#再push就可以了

docker push lnssm/mycentos:1.0

发布到阿里云,海内速率快登录阿里云掌握台搜索容器镜像做事->实例列表->个人实例->命令空间新建

创建完命名空间后,打开镜像仓库,创建镜像仓库,选择本地仓库

根据官方给的文档开始提交就可以,这里就不截图了

ps:后面还要对docker中的网络部分记录分享一下!!!!!
标签:

相关文章

php主动插入信息技巧_PHP MySQL 插入数据

在创建完数据库和表后,我们可以向表中添加数据。以下为一些语法规则:PHP 中 SQL 查询语句必须利用引号在 SQL 查询语句中的...

SEO优化 2024-12-15 阅读0 评论0

大数据决战,新时代的战略高地

随着信息技术的飞速发展,大数据已经成为国家治理、产业发展、社会进步的重要驱动力。在新时代,大数据决战已经成为我国科技创新、产业升级...

SEO优化 2024-12-15 阅读0 评论0

大数据下的周边世界,挖掘潜能,引领未来

随着信息技术的飞速发展,大数据已成为现代社会的重要资源。在周边世界中,大数据的应用已经渗透到各个领域,为我们的生活带来前所未有的便...

SEO优化 2024-12-15 阅读0 评论0