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

信用网站一体化建设一个手机app开发需要多少钱

信用网站一体化建设,一个手机app开发需要多少钱,邹城网站建设哪家便宜,千图网免费素材图库背景一 Dockerfile 1 概述 commit的局限 很容易制作简单的镜像#xff0c;但碰到复杂的情况就十分不方便例如碰到下面的情况需要设置默认的启动命令需要设置环境变量需要指定镜像开放某些特定的端口 Dockerfile就是解决这些问题的方法 Dockerfile是一种更强大的镜像制作方式…一 Dockerfile 1  概述 commit的局限 很容易制作简单的镜像但碰到复杂的情况就十分不方便例如碰到下面的情况需要设置默认的启动命令需要设置环境变量需要指定镜像开放某些特定的端口 Dockerfile就是解决这些问题的方法 Dockerfile是一种更强大的镜像制作方式 编写类似脚本的 Dockerfile 文件通过该文件制作镜像 2  使用 创建编写 Dockerfile制作镜像 docker build -t 镜像名称:标签 Dockerfile所在目录 3  指令说明 指令说明FROM指定基础镜像唯一RUN在容器内执行命令可以写多条ADD把文件拷贝的容器内如果文件是 tar.xx 格式会自动解压COPY把文件拷贝的容器内不会自动解压ENV设置启动容器的环境变量WORKDIR设置启动容器的默认工作目录唯一CMD容器默认的启动参数唯一ENTRYPOINT容器默认的启动命令唯一USER启动容器使用的用户唯一EXPOSE使用镜像创建的容器默认监听使用的端口号/协议 4  制作  什么是上帝进程? 简单的说就是系统创建之初产生的第一个进程 特点 没有父进程PID 1l是所有程序的根进程上帝进程死亡系统实例也就关闭了 容器有没有上帝进程? 容器的启动进程就是上帝进程如果容器的启动进程关闭等同于容器关闭 容器的启动进程能否放在后台运行? 后台进程的本质是向系统托管进程服务容器没有操作系统所以无法实现进程托管如果强行把容器的启动进程放后台将导致容器直接关闭容器的启动进程必须放在前台运行 5  语法案例 语法案例1 # 编写 Dockerfile [rootdocker ~]# mkdir myimg [rootdocker ~]# vim myimg/Dockerfile FROM mylinux:latest CMD [/bin/ls, -l] # 创建镜像 [rootdocker ~]# docker build -t img1:latest myimg ...... Successfully tagged img1:latest [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE img1 latest 9278f72f8cb1 5 seconds ago 249MB mylinux latest e3b3d26bf0da 21 hours ago 249MB rockylinux 8.5 210996f98b85 13 months ago 205MB # 创建容器 [rootdocker ~]# docker run -it --rm img1:latest total 48 lrwxrwxrwx 1 root root 7 Oct 11 2021 bin - usr/bin drwxr-xr-x 5 root root 360 Feb 5 04:21 dev drwxr-xr-x 1 root root 4096 Feb 5 04:21 etc drwxr-xr-x 2 root root 4096 Oct 11 2021 home ...... # 传递参数命令覆盖 CMD 执行 [rootdocker ~]# docker run -it --rm img1:latest id uid0(root) gid0(root) groups0(root) 语法案例2 ENTRYPOINT一定会执行CMD 可以通过传递参数覆盖 # ENTRYPOINT 与 CMD 执行方式为 ${ENTRYPOINT} ${CMD} [rootdocker ~]# vim myimg/Dockerfile FROM mylinux:latest ENTRYPOINT [echo] CMD [/bin/ls, -l] # 创建镜像 [rootdocker ~]# docker build -t img2:latest myimg ...... Successfully tagged img2:latest# CMD 做为参数传递在容器内执行了 echo /bin/ls -l [rootdocker ~]# docker run -it --rm img2:latest /bin/ls -l# CMD 被替换在容器内执行了 echo id [rootdocker ~]# docker run -it --rm img2:latest id id 语法案例3 # 制作测试文件 [rootdocker ~]# tar -cf myimg/myfile.tar -C /etc hosts issue # 编辑Dockerfile [rootdocker ~]# vim myimg/Dockerfile FROM mylinux:latest COPY myfile.tar /var/tmp/ ADD myfile.tar /tmp/ RUN id touch /tmp/file1 USER nobody RUN id touch /tmp/file2 ENV mymsgHello World WORKDIR /tmp CMD [/bin/bash]# 创建镜像 [rootdocker ~]# docker build -t img3:latest myimg ...... Successfully built eb8b669cbe7c Successfully tagged img3:latest# 运行测试 [rootdocker ~]# docker run -it --rm img3:latest # 使用 COPY 进来的文件还是 tar 包 bash-4.4$ tree /var/tmp /var/tmp -- myfile.tar # 使用 ADD 添加的文件已经被解压了 bash-4.4$ tree /tmp /tmp |-- hosts -- issue# USER 指令设置使用 nobody 用户运行容器 bash-4.4$ id uid65534(nobody) gid65534(nobody) groups65534(nobody) # USER 指令前创建的文件是 root 权限之后是 USER 用户权限 bash-4.4$ ls -l /tmp/file? -rw-r--r-- 1 root root 0 Feb 5 05:25 /tmp/file1 -rw-r--r-- 1 nobody nobody 0 Feb 5 05:25 /tmp/file2# 环境变量可以直接调用 bash-4.4$ echo ${mymsg} Hello World # WORKDIR 把工作目录设置到 /tmp bash-4.4$ pwd /tmp 二  镜像制作实战 1  apache镜像 创建一个可以解析 php 页面的 httpd 镜像 设置默认首页为 Welcome to The Apache 添加php 测试页面info.php 设置默认的工作目录到 /var/www/html 准备配置文件 [rootdocker ~]# mkdir httpd # 设置测试页面 [rootdocker ~]# echo Welcome to The Apache. httpd/index.html [rootdocker ~]# cp -a info.php httpd/ [rootdocker ~]# tar czf httpd/myweb.tar.gz -C httpd index.html info.php # 获取配置文件 [rootdocker ~]# docker run -itd --name myweb mylinux:latest [rootdocker ~]# docker exec -it myweb dnf install -y httpd [rootdocker ~]# docker cp myweb:/etc/httpd/conf.modules.d/00-mpm.conf httpd/ [rootdocker ~]# docker rm -f myweb # 修改配置文件 [rootdocker ~]# sed -ri -e s,^Load.*,#, -e s,^#(.*mod_mpm_prefork.so)$,\1, httpd/00-mpm.conf 制作镜像 # 编写 dockerfile 文件 [rootdocker ~]# vim httpd/Dockerfile FROM mylinux:latest RUN dnf install -y httpd php dnf clean all ADD myweb.tar.gz /var/www/html/ COPY 00-mpm.conf /etc/httpd/conf.modules.d/ ENV LANGC WORKDIR /var/www/html/ EXPOSE 80/tcp CMD [/usr/sbin/httpd, -DFOREGROUND][rootdocker ~]# docker build -t httpd:latest httpd ...... Successfully tagged httpd:latest 验证镜像 # 查看镜像并创建容器 [rootdocker ~]# docker images httpd:latest REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest c1e854cde1f4 About a minute ago 299MB [rootdocker ~]# docker run -itd --name myweb httpd:latest cc2b82ad0367172c344c7207def94c4c438027c60859e94883e440b53a860a93# 查看容器地址并访问验证 [rootdocker ~]# docker inspect myweb |grep -i IPAddress [rootdocker ~]# curl http://172.17.0.2/info.php pre Array ([REMOTE_ADDR] 172.17.0.1[REQUEST_METHOD] GET[HTTP_USER_AGENT] curl/7.61.1[REQUEST_URI] /info.php ) php_host: 2fbc8c132f7f 1229 [rootdocker ~]# docker rm -f myweb 2  nginx镜像 在容器内编译 Nginx不方便我们可以在真机编译 Nginx然后把编译好的二进制打包部署在容器内 # 安装编译工具和依赖软件包 [rootdocker ~]# dnf install -y openssl-devel pcre-devel gcc make # 编译安装 [rootdocker ~]# tar zxf nginx-1.22.1.tar.gz [rootdocker ~]# cd nginx-1.22.1/ [rootdocker nginx-1.22.1]# ./configure --prefix/usr/local/nginx --with-pcre --with-http_ssl_module [rootdocker nginx-1.22.1]# make make install # 设置默认首页 [rootdocker nginx-1.22.1]# echo Nginx is running ! /usr/local/nginx/html/index.html 制作镜像 注意nginx 服务不能托管在后台运行 [rootdocker ~]# mkdir nginx # 将编译好的 nginx 打包这里必须使用相对路径 [rootdocker ~]# tar czf nginx/nginx.tar.gz -C /usr/local nginx [rootdocker ~]# vim nginx/Dockerfile FROM mylinux:latest RUN dnf install -y pcre openssl dnf clean all ADD nginx.tar.gz /usr/local/ ENV PATH${PATH}:/usr/local/nginx/sbin WORKDIR /usr/local/nginx/html EXPOSE 80/tcp CMD [nginx, -g, daemon off;][rootdocker ~]# docker build -t nginx:latest nginx Successfully tagged nginx:latest 验证镜像 # 查看镜像并创建容器 [rootdocker ~]# docker images nginx:latest REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 645dd2d9a8ec 3 minutes ago 274MB [rootdocker ~]# docker run -itd --name myweb nginx:latest e440b53a860a93cc2b82ad0367172c344c7207def94c4c438027c60859e94883# 查看容器地址并访问验证 [rootdocker ~]# docker inspect myweb |grep -i IPAddress [rootdocker ~]# curl http://172.17.0.2/ Nginx is running !# 查看 nginx 服务的用户 # nginx 服务为了提高安全性在启动之后默认会使用nobody 用户对外提供服务 [rootdocker ~]# docker exec -it myweb ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 15:48 pts/0 00:00:00 nginx: master process nginx nobody 7 1 0 15:48 pts/0 00:00:00 nginx: worker process root 32 0 0 15:49 pts/1 00:00:00 ps -ef[rootdocker ~]# docker rm -f myweb 3  php-fpm镜像 按照下面的要求创建php-fpm镜像 php-fpm 服务监听地址为 127.0.0.19000php-fpm 使用和 nginx 相同的普通用户运行完成镜像制作并验证 准备配置文件 获取并修改php-fpm配置文件 使用nobody 用户启动运行 php-fpm 服务 # 获取配置文件 [rootdocker ~]# mkdir php [rootdocker ~]# docker run -itd --name myphp mylinux:latest [rootdocker ~]# docker exec -it myphp dnf install -y php-fpm [rootdocker ~]# docker cp myphp:/etc/php-fpm.d/www.conf php/ [rootdocker ~]# docker rm -f myphp # 修改配置文件 [rootdocker ~]# sed -ri s,^(listen ).*,\1127.0.0.1:9000, php/www.conf 制作镜像 # 编写 dockerfile 文件 [rootdocker ~]# vim php/Dockerfile FROM mylinux:latest RUN dnf install -y php-fpm dnf clean all \mkdir -p /run/php-fpm /usr/local/nginx/html \chown -R nobody.nobody /run/php-fpm /var/log/php-fpm /usr/local/nginx/html COPY www.conf /etc/php-fpm.d/www.conf USER nobody WORKDIR /usr/local/nginx/html EXPOSE 9000/tcp CMD [/usr/sbin/php-fpm, --nodaemonize][rootdocker ~]# docker build -t php-fpm:latest php Successfully tagged php-fpm:latest 验证镜像 # 查看镜像并创建容器 [rootdocker ~]# docker images php-fpm:latest REPOSITORY TAG IMAGE ID CREATED SIZE php-fpm latest b2404bd119b0 48 seconds ago 275MB [rootdocker ~]# docker run -itd --name myphp php-fpm:latest 6eeff6af4a6469c298944b2bdd2ba69f32ebcbc6cb683a0a05af4eefbf90e8c1# 验证服务 [rootdocker ~]# docker exec -it myphp /bin/bash # 验证用户 bash-4.4$ id uid65534(nobody) gid65534(nobody) groups65534(nobody) # 我们无法直接调用 php 服务可以通过查看进程验证服务 bash-4.4$ ps -ef UID PID PPID C STIME TTY TIME CMD nobody 1 0 0 16:13 pts/0 00:00:00 php-fpm: master process (/etc/php-fpm.conf) nobody 7 1 0 16:13 pts/0 00:00:00 php-fpm: pool www nobody 8 1 0 16:13 pts/0 00:00:00 php-fpm: pool www nobody 9 1 0 16:13 pts/0 00:00:00 php-fpm: pool www nobody 10 1 0 16:13 pts/0 00:00:00 php-fpm: pool www nobody 11 1 0 16:13 pts/0 00:00:00 php-fpm: pool www nobody 12 0 0 16:13 pts/1 00:00:00 /bin/bash nobody 19 12 0 16:13 pts/1 00:00:00 ps -ef bash-4.4$ exit[rootdocker ~]# docker rm -f myphp 三  docker私有仓库 1  概述 私有仓库是存储 docker image 的仓库 管理了一个 docker 集群在所有节点维护镜像的一致性是一个非常麻烦繁琐的任务使用公共仓库我们又无法控制仓库中的镜像、版本等数据私有仓库就是解决这些问题的最佳方法。 用户只需要维护私有仓库里面的镜像即可docker 客户端可以通过私有仓库创建容器服务。 主流仓库有 docker Registry 和 vmware HarborRegistry 提供了仓库的核心功能包括分层传输机制、WEB接口等功能 Habor 是在 Registry 上进行了相应的企业级扩展,从而获得了更加广泛的应用这些新的企业级特性包括:提供 WEB界面优化用户体验支持登陆、搜索功能区分公有、私有镜像以及基于角色的访问控制集成日志审计、支持水平扩展等功能 2  原理 3  安装部署 主机清单 主机名ip地址最低配置registry192.168.1.352CPU,4G内存 registry安装部署 # 在 registry 上安装私有仓库 [rootregistry ~]# dnf install -y docker-distribution # 启动私有仓库并设置开机自启动 [rootregistry ~]# systemctl enable --now docker-distribution 4  管理 1 概述 仓库配置文件及数据存储路径 /etc/docker-distribution/registry/config.yml/var/lib/registry默认端口号5000 查看私有镜像仓库中的镜像名称或标签 名称: curl http://仓库IP:端口/v2/ catalog标签: curl http://仓库IP:端口/v2/镜像路径/tags/list 如何让Docker知道私有仓库的地址? 配置文件 /etc/docker/daemon.json 核心参数 镜像仓库地址     [ registry-mirrors:[http://registry:5000 ] 私有仓库地址     [ insecure-registries:[registry:5000 ] 2 案列 配置私有仓库上传镜像 nginx到仓库 img 目录下 myimg:web 上传镜像php-fpm到仓库img目录下myimg:php-fpm 上传镜像 httpd 到仓库 library 目录下httpd:latest 上传镜像mylinux到仓库library 目录下mylinux:latest 运行容器删除所有容器和镜像分别使用 img/myimg:web 和 library/httpd:latest 创建容器 访问验证 客户端配置 所有node节点都需要配置 [rootdocker ~]# vim /etc/hosts 192.168.1.35 registry # 修改配置文件 [rootdocker ~]# vim /etc/docker/daemon.json {registry-mirrors: [http://registry:5000],insecure-registries:[registry:5000] } # 重启服务生效 [rootdocker ~]# systemctl restart docker 上传镜像 使用 docker tag 通过标签设置上传地址和路径使用 docker push 上传镜像 # 给 nginx 镜像设置标签 [rootdocker ~]# docker tag nginx:latest registry:5000/img/myimg:web # 上传 nginx 镜像 [rootdocker ~]# docker push registry:5000/img/myimg:web The push refers to repository [registry:5000/img/myimg] c9d01852a13b: Pushed ...... web: digest: sha256:3e1fc9ad1ee46ee4619c95dc9d71034d919e53abfc size: 952# 上传 php-fpm 镜像 [rootdocker ~]# docker tag php-fpm:latest registry:5000/img/myimg:php-fpm [rootdocker ~]# docker push registry:5000/img/myimg:php-fpm The push refers to repository [registry:5000/img/myimg] 619c95dc93e1: Pushed ...... php-fpm: digest: sha256:619c95dc93e1fc9ad1ee46ee4d71034d919e53abfc size: 875# 上传 httpd 镜像 [rootdocker ~]# docker tag httpd:latest registry:5000/library/httpd:latest [rootdocker ~]# docker push registry:5000/library/httpd:latest The push refers to repository [registry:5000/library/httpd] 95dc9d71034d: Pushed ...... latest: digest: sha256:95dc9d71034d919e53abfc3e1fc9ad1ee46ee4619c size: 968 验证测试 查看镜像名称 curl http://仓库IP:5000/v2/_catalog 查看镜像标签 curl http://仓库IP:5000/v2/镜像路径/tags/list 使用易读格式 python3 -m json.tool # 查看仓库中所有镜像的名称 [rootdocker ~]# curl http://registry:5000/v2/_catalog {repositories:[img/myimg, library/httpd]}# 查看某一镜像的所有标签 [rootdocker ~]# curl http://registry:5000/v2/img/myimg/tags/list {name:img/myimg,tags:[web, php-fpm]}# 易读格式查看镜像名称 [rootdocker ~]# curl -s http://registry:5000/v2/_catalog |python3 -m json.tool {repositories: [img/myimg,library/httpd] }# 易读格式查看镜像标签 [rootdocker ~]# curl -s http://registry:5000/v2/img/myimg/tags/list |python3 -m json.tool {name: img/myimg,tags: [php-fpm,web] } 创建容器 # 删除所有容器 [rootdocker ~]# docker rm -f $(docker ps -aq) ......# 删除所有镜像 [rootdocker ~]# docker rmi $(docker images -q) ......# 使用仓库中的镜像运行容器 [rootdocker ~]# docker run -itd --rm registry:5000/img/myimg:web 2b7cd6d88a7665dbea0a4b3d99478e9f302c0a5661d7676d6d3bd3cb6d181# library 是默认路径可以省略路径地址 [rootdocker ~]# docker run -itd --rm httpd:latest 634766f788d665dbea0a4b39709e0a2cc8624fd99478e9f302c0a5661d767
http://www.zqtcl.cn/news/27742/

相关文章:

  • 国贸做网站的公司wordpress 付费阅读
  • wordpress 二级菜单seo是什么意思啊
  • 湖南长沙网版公司牡丹江网站seo
  • 国际网站建站wordpress 文章404
  • 网站建设的网络技术在线做图软件
  • 建设美食网站的作用企业管理系统项目简介内容
  • 快速搭建一个网站一个微信公众号可以做几个网站
  • pr模板免费下载网站西部数码网站备案查询
  • 漳州正规网站建设公司网站营销费用
  • 福州执业建设中心网站wordpress 嵌入百度地图
  • 建设部网站阮建昌公示广东今天新闻最新消息
  • 西安哪家网站公司做的比较好动态做网站
  • 做网站的工作量中国大型建筑公司有哪些
  • 乐之网站制作不懂英文怎么做英文的seo网站
  • 小说网站分页关键字怎么做三河建设厅公示网站
  • 家居网站 模板中资源 网站域名解析
  • 安远网站建设宁波seo如何做推广平台
  • 如何在百度上做公司网站海南工程建设资料备案网站
  • 网站建设公司做销售前景好不好网站开发主要技术
  • php就是做网站吗怎样提高网站首页权重
  • Godaddy优惠码网站怎么做的无锡建设网站的公司哪家好
  • 深圳建设网站哪家最好凡客诚品上一年度市场份额
  • 建设个网站需要多少钱万网域名怎样把淘宝网站加进去
  • 门户网站直接登录系统珠海有什么好的网站推广公司
  • 海口模板网站建站化妆品备案查询
  • 寻亲网站开发设计文档河南洛阳网站建设
  • 个人可以建门户网站吗餐饮网站源码
  • 企业网站建设多少家网上商城平台运营方案
  • 爱站工具包手机版外包做网站的会给你什么
  • 视频网站做电商wordpress评论美化