当前位置: 首页 > news >正文

查商家信息有哪些网站商贸公司注册需要多少钱

查商家信息有哪些网站,商贸公司注册需要多少钱,176复古传奇网页版,教育局建设网站的必要性开启Buildkit BuildKit是Docker官方社区推出的下一代镜像构建神器#xff0c;可以更加快速#xff0c;有效#xff0c;安全地构建docker镜像。 尽管目前BuildKit不是Docker的默认构建工具#xff0c;但是完全可以考虑将其作为Docker#xff08;v18.09#xff09;的首选… 开启Buildkit BuildKit是Docker官方社区推出的下一代镜像构建神器可以更加快速有效安全地构建docker镜像。 尽管目前BuildKit不是Docker的默认构建工具但是完全可以考虑将其作为Dockerv18.09的首选构建工具。 官方文档https://docs.docker.com/build/buildkit/ 下面介绍一下怎么开启BuildKit。 在/etc/docker/daemon.json里添加如果没有这个文件则新建, 然后重启docker { features: { buildkit: true } }或者在执行docker build命令时设置 $ DOCKER_BUILDKIT1 docker build .镜像的选择 可以前往官网学习官方的镜像怎么制作的https://github.com/docker-library/official-images 基础镜像的选择原则 官方镜像优于非官方的镜像如果没有官方镜像则尽量选择Dockerfile开源的。固定版本tag而不是每次都使用latest尽量选择体积小的镜像 下面的镜像列表中都是jre8的镜像但是由于基础的镜像不同导致最终镜像大小不同。 $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE eclipse-temurin 8-jre-jammy ec4a8981544b 6 days ago 223MB eclipse-temurin 8-jre-focal e588bf105eb7 3 weeks ago 227MB eclipse-temurin 8-jre-alpine f7a454a165ae 3 weeks ago 135MB eclipse-temurin 8-jre-centos7 e5b6f35176e9 23 months ago 350MB openjdk 8-jre-alpine f7a292bbb70c 4 years ago 84.9MBJammy和Focal这两个都是Ubuntu的版本代号。Focal对应的是Ubuntu 20.04 LTS长期支持版Jammy对应的则是更加新的Ubuntu版本。Ubuntu是一个非常受欢迎的Linux发行版因为它既有强大的功能又有着广大的用户和开发者社区。 AlpineAlpine Linux是一个面向安全、简单和轻量级的Linux发行版它的镜像大小通常远小于基于 Ubuntu或其他发行版的镜像。这使得它非常适合于Docker镜像因为小的镜像可以更快地被拉取和部署。 AdoptOpenJDK停止发布OpenJDK二进制而Eclipse Temurin是它的延伸提供更好的稳定性。 减少镜像的分层 例如下面的镜像 from centos:7label authormorirsenv WORK_DIR /usr/localarg version6.2.5workdir $WORK_DIRADD redis-${version}.tar.gz .run yum -y update run yum install -y wget gcc gcc-c automake autoconf libtool make run make -C redis-${version}expose 6379env REDIS_HOME $WORK_DIR/redis-6.2.5env PATH $PATH:$REDIS_HOME/srcentrypoint [redis-server]查询镜像的分层 $ docker image history redis:6.2.5.1 IMAGE CREATED CREATED BY SIZE COMMENT 444f31557106 57 seconds ago ENTRYPOINT [redis-server] 0B buildkit.dockerfile.v0 missing 57 seconds ago ENV PATH/usr/local/sbin:/usr/local/bin:/usr… 0B buildkit.dockerfile.v0 missing 57 seconds ago ENV REDIS_HOME/usr/local/redis-6.2.5 0B buildkit.dockerfile.v0 missing 57 seconds ago EXPOSE map[6379/tcp:{}] 0B buildkit.dockerfile.v0 missing 57 seconds ago RUN |1 version6.2.5 /bin/sh -c make -C redi… 122MB buildkit.dockerfile.v0 missing About an hour ago RUN |1 version6.2.5 /bin/sh -c yum install … 302MB buildkit.dockerfile.v0 missing About an hour ago RUN |1 version6.2.5 /bin/sh -c yum -y updat… 358MB buildkit.dockerfile.v0 missing About an hour ago ADD redis-6.2.5.tar.gz . # buildkit 10.4MB buildkit.dockerfile.v0 missing 2 hours ago WORKDIR /usr/local 0B buildkit.dockerfile.v0 missing 2 hours ago ARG version6.2.5 0B buildkit.dockerfile.v0 missing 2 hours ago ENV WORK_DIR/usr/local 0B buildkit.dockerfile.v0 missing 2 hours ago LABEL authormorirs 0B buildkit.dockerfile.v0 missing 2 years ago /bin/sh -c #(nop) CMD [/bin/bash] 0B missing 2 years ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B missing 2 years ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB每一行的RUN命令都会产生一层image layer, 导致镜像的臃肿。 修改为如下 from centos:7label authormorirsenv WORK_DIR /usr/localarg version6.2.5workdir $WORK_DIRADD redis-${version}.tar.gz .run yum -y update \ yum install -y wget gcc gcc-c automake autoconf libtool make \ run make -C redis-${version}expose 6379env REDIS_HOME $WORK_DIR/redis-6.2.5env PATH $PATH:$REDIS_HOME/srcentrypoint [redis-server]新的镜像分层如下 $ docker history redis:6.2.5.2 IMAGE CREATED CREATED BY SIZE COMMENT fa6f23e424bc 30 seconds ago ENTRYPOINT [redis-server] 0B buildkit.dockerfile.v0 missing 30 seconds ago ENV PATH/usr/local/sbin:/usr/local/bin:/usr… 0B buildkit.dockerfile.v0 missing 30 seconds ago ENV REDIS_HOME/usr/local/redis-6.2.5 0B buildkit.dockerfile.v0 missing 30 seconds ago EXPOSE map[6379/tcp:{}] 0B buildkit.dockerfile.v0 missing 30 seconds ago RUN |1 version6.2.5 /bin/sh -c yum -y updat… 593MB buildkit.dockerfile.v0 missing 2 hours ago ADD redis-6.2.5.tar.gz . # buildkit 10.4MB buildkit.dockerfile.v0 missing 2 hours ago WORKDIR /usr/local 0B buildkit.dockerfile.v0 missing 2 hours ago ARG version6.2.5 0B buildkit.dockerfile.v0 missing 2 hours ago ENV WORK_DIR/usr/local 0B buildkit.dockerfile.v0 missing 2 hours ago LABEL authormorirs 0B buildkit.dockerfile.v0 missing 2 years ago /bin/sh -c #(nop) CMD [/bin/bash] 0B missing 2 years ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B missing 2 years ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB镜像的大小变化如下 $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE redis 6.2.5.2 fa6f23e424bc About a minute ago 807MB redis 6.2.5.1 444f31557106 15 minutes ago 996MB合理使用缓存 在构建的时候尽量将不变的结构放在Dockerfile的前面经常变化的结构放在Dockerfile的后面这样构建的时候不变的部分层构建过了就无需再次构建节约时间可以在构建的日志中看到CACHED。 s$ docker image build -f redis.dockerfile2 -t redis:6.2.5.2 . [] Building 268.3s (9/9) FINISHED [internal] load build definition from redis.dockerfile2 0.0s transferring dockerfile: 412B 0.0s [internal] load .dockerignore 0.0s transferring context: 2B 0.0s [internal] load metadata for docker.io/library/centos:7 0.0s [1/4] FROM docker.io/library/centos:7 0.0s [internal] load build context 0.0s transferring context: 42B 0.0s CACHED [2/4] WORKDIR /usr/local 0.0s CACHED [3/4] ADD redis-6.2.5.tar.gz . 0.0s [4/4] RUN yum -y update yum install -y wget gcc gcc-c automake autoconf libtool make make -C redis-6.2.5 265.0s exporting to image 3.2s exporting layers 3.2s writing image sha256:fa6f23e424bc6088f6cc84d5ff67ae1376f18fbc906e14b670bc3e4c316046e6 0.0s naming to docker.io/library/redis:6.2.5.2 0.0s合理使用.dockerignore Docker是client-server架构理论上Client和Server可以不在一台机器上。 在构建docker镜像的时候需要把所需要的文件由CLIclient发给Server这些文件实际上就是build context。 举例 $ cat redis6.2.6.dockerfile from centos:7label authormorirsenv WORK_DIR /usr/localarg version6.2.6workdir $WORK_DIRCOPY . .run tar -zxvf redis-${version}.tar.gz run yum -y update run yum install -y wget gcc gcc-c automake autoconf libtool make run make -C redis-${version}expose 6379env REDIS_HOME $WORK_DIR/redis-6.2.5env PATH $PATH:$REDIS_HOME/srcentrypoint [redis-server]构建目录下的文件 total 4848 drwxrwxr-x 2 morris morris 4096 Sep 19 19:30 ./ drwxrwxr-x 4 morris morris 4096 Sep 18 10:00 ../ -rw-rw-r-- 1 morris morris 2465302 Jul 22 2021 redis-6.2.5.tar.gz -rw-rw-r-- 1 morris morris 2476542 Oct 4 2021 redis-6.2.6.tar.gz -rw-rw-r-- 1 morris morris 356 Sep 18 11:28 redis.dockerfile -rw-rw-r-- 1 morris morris 360 Sep 18 11:39 redis.dockerfile2 -rw-rw-r-- 1 morris morris 373 Sep 19 19:30 redis6.2.6.dockerfile构建的时候第一行输出就是发送build context大小为4.947MB这里包含了不需要的文件redis-6.2.5.tar.gz $ docker image build -f redis6.2.6.dockerfile -t redis:6.2.6.1 . Sending build context to Docker daemon 4.947MB Step 1/14 : from centos:7--- eeb6ee3f44bd编写.dockerignore文件忽略掉不需要的文件然后放到docker构建上下文的根路径下。 $ docker image build -f redis6.2.6.dockerfile -t redis:6.2.6.1 . Sending build context to Docker daemon 2.482MB Step 1/14 : from centos:7--- eeb6ee3f44bd再次构建build context大小变为2.482MB。 镜像的多阶段构建 假如有一个C的程序我们想用Docker去做编译然后执行可执行文件。 #include stdio.hvoid main(int argc, char *argv[]) {printf(hello %s\n, argv[argc - 1]); }构建一个Docker镜像因为要有C的环境所以我们选择gcc这个image FROM gcc:9.4COPY hello.c /src/hello.cWORKDIR /srcRUN gcc --static -o hello hello.cENTRYPOINT [ /src/hello ]CMD []build和测试 $ docker image build -f c.dockerfile -t hello:1.0 . ... ...$ docker container run --rm -it hello:1.0 hello hello hello$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE hello 1.0 93b8a1824b80 45 seconds ago 1.14GB可以看到镜像非常的大1.14GB 实际上当我们把hello.c编译完以后并不需要这样一个大的GCC环境一个小的alpine镜像就可以了。 这时候我们就可以使用多阶段构建了。 FROM gcc:9.4 AS builderCOPY hello.c /src/hello.cWORKDIR /srcRUN gcc --static -o hello hello.cFROM alpine:3.13.5COPY --frombuilder /src/hello /src/helloENTRYPOINT [ /src/hello ]CMD []构建和测试 $ docker image build -f c2.dockerfile -t hello:2.0 . ... ...$ docker container run --rm -it hello:2.0 hi hello hi$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE hello 2.0 8127f3ac5ea6 4 seconds ago 6.55MB hello 1.0 93b8a1824b80 45 seconds ago 1.14GB可以看到这个镜像非常小只有6.55MB。 尽量使用非root用户 Root的危险性 docker的root权限一直是其遭受诟病的地方docker的root权限有那么危险么我们举个例子。 假如我们有一个用户叫morris它本身不具有sudo的权限所以就有很多文件无法进行读写操作比如/root目录它是无法查看的。 $ ls /root ls: cannot open directory /root: Permission denied但是这个用户有执行docker的权限也就是它在docker这个group里。 $ groups morris docker这时我们就可以通过Docker做很多越权的事情了比如我们可以把这个无法查看的/root目录映射到docker container里你就可以自由进行查看了。 $ docker container run -it --rm -v /root:/root/tmp centos:7 bash [root9cc0d1275a15 /]# ls /root/tmp snap更甚至我们可以给我们自己加sudo权限 $ docker container run -it --rm -v /etc/sudoers:/root/sudoers centos:7 bash [root744b21d23ba9 /]# echo demo ALL(ALL) ALL /root/sudoers [root744b21d23ba9 /]# more /root/sudoers | grep demo demo ALL(ALL) ALL然后退出containermorris用户已经有sudo权限了。 $ ls /etc/sudoers /etc/sudoers如何使用非root用户 通过groupadd和useradd创建一个nonroot的组和用户通过USER指定后面的命令要以nonroot这个用户的身份运行 from centos:7label authormorirsenv WORK_DIR /usr/localarg version6.2.5workdir $WORK_DIRADD redis-${version}.tar.gz .run yum -y update \ yum install -y wget gcc gcc-c automake autoconf libtool make \ make -C redis-${version} \ groupadd -r nonroot \ useradd -r -g nonroot nonroot \ chown -R nonroot:nonroot $WORK_DIRUSER nonrootexpose 6379env REDIS_HOME $WORK_DIR/redis-6.2.5env PATH $PATH:$REDIS_HOME/srcentrypoint [redis-server]
http://www.tj-hxxt.cn/news/232037.html

相关文章:

  • 用公司的信息做网站违法吗房地产开发与管理专业
  • 直播网站建设品牌刚刚传来最新消息
  • 做包装一般看什么网站禁止wordpress评论外链
  • 青岛网站建设方案公司wordpress调用图像描述
  • 支付公司网站建设会计分录东莞专业的单位网站建设
  • 网站产品优化阳江招聘网娱乐业
  • 提供网站制作公司在线代理ip网页
  • 做民族网站的配色哪些颜色适合中国住建网的官网
  • 网站建设朋友圈微信网页制作网站建设
  • 网站建设的重点长宁网站建设价格
  • 菏泽百度网站建设网站常用的js效果
  • 网站建设代运营方案多用户商城网站方案
  • 网站流量统计工具泸州房产网
  • 免费建站网站号免费素材网站无版权
  • 大型门户网站建设服务wordpress 置顶排序
  • 找网站设计企业微信小程序定制
  • 网站前端后端分开做可以吗如何提高网站优化
  • 安康网站开发公司没有域名的网站
  • 公司网站搜索引擎排名分析网站推广策略都有哪些
  • 网站seo诊断报告例子平面设计专用网站
  • 带有客户案例的网站推广公司是做什么的
  • 温州外贸网站建设无忧网站
  • 手机网站模板制作教程电商sem是什么意思
  • 图片上传网站制作做创意礼品定制的网站
  • 网站开发摊销期海报设计手绘
  • 响应式网站用什么软件做效果长春住房和城乡建设部官方网站
  • wap网站建设策划方案10_10_设计公司网站设计
  • 做展板好的网站国外做的比较的ppt网站有哪些
  • 金融网站建设方案360网站怎么做ppt
  • 景点购票网站开发pos网站源码