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

新型门窗网站模板淘宝网是中国最大的c2c平台

新型门窗网站模板,淘宝网是中国最大的c2c平台,关键词首页排名优化平台,石家庄百度seoCLOUD 07 一、Dockerfile详细解析 指令说明FROM指定基础镜像#xff08;唯一#xff09;RUN在容器内执行命令#xff0c;可以写多条ADD把文件拷贝到容器内#xff0c;如果文件是 tar.xx 格式#xff0c;会自动解压COPY把文件拷贝到容器内#xff0c;不会自动解压ENV设置…CLOUD  07 一、Dockerfile详细解析 指令说明FROM指定基础镜像唯一RUN在容器内执行命令可以写多条ADD把文件拷贝到容器内如果文件是 tar.xx 格式会自动解压COPY把文件拷贝到容器内不会自动解压ENV设置启动容器的环境变量WORKDIR设置启动容器的默认工作目录唯一CMD容器默认的启动参数唯一ENTRYPOINT容器默认的启动命令唯一USER启动容器使用的用户唯一EXPOSE使用镜像创建的容器默认监听使用的端口号/协议 语法案例1 # 编写 Dockerfile [rootdocker ~]# mkdir myimg [rootdocker ~]# vim myimg/Dockerfile FROM mylinux:latest CMD [/bin/ls, -l] # 创建镜像 [rootdocker ~]# docker build -t img1:latest myimg ...... [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}} [rootdocker ~]# vim myimg/Dockerfile FROM mylinux:latest ENTRYPOINT [echo] CMD [/bin/ls, -l] # 创建镜像 [rootdocker ~]# docker build -t img2:latest myimg ......# 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 ......# 运行测试 [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 apache 镜像 二、容器镜像制作 #前面是介绍如何使用Dckerfile 制作镜像和相关参数使用的接下来是结合docker命令使用并制作镜像。以web服务器 apache , nginx镜像制作为例 apache 镜像 拷贝 info.php 测试文件到 /root/ 目录下[rootecs-proxy ]# rsync -av info.php 192.168.1.32:/root/#这里想要测试的话可以上其他网页模版下点动态网站模版到真机之后真机上传到 该机器 测试 手工部署 # 创建容器 [rootdocker ~]# docker run -it --name httpd mylinux:latest # 安装软件包 [root975fb53cb155 /]# dnf install -y httpd php dnf clean all # 修改配置文件 [root975fb53cb155 /]# vim /etc/httpd/conf.modules.d/00-mpm.conf 11: LoadModule mpm_prefork_module ... ... # 去掉注释 23: # LoadModule mpm_event_module ... ... # 注释配置 [root975fb53cb155 /]# export LANGC [root975fb53cb155 /]# /usr/sbin/httpd -DFOREGROUND # 使用快捷键 (ctrl-p, ctrl-q) 退出 [rootdocker ~]# # 添加测试页面 [rootdocker ~]# echo Welcome to The Apache. index.html [rootdocker ~]# docker cp index.html httpd:/var/www/html/ [rootdocker ~]# docker cp info.php httpd:/var/www/html/ 制作镜像 # 编写 dockerfile 文件 [rootdocker ~]# mkdir httpd [rootdocker ~]# vim httpd/Dockerfile FROM mylinux:latest RUN dnf install -y httpd php dnf clean all RUN sed -ri -e s,^Load.*,#, -e s,^#(.*mod_mpm_prefork.so)$,\1, /etc/httpd/conf.modules.d/00-mpm.conf ENV LANGC ADD myweb.tar.gz /var/www/html/ WORKDIR /var/www/html/ EXPOSE 80/tcp CMD [/usr/sbin/httpd, -DFOREGROUND][rootdocker ~]# tar -czf httpd/myweb.tar.gz index.html info.php [rootdocker ~]# docker build -t httpd:latest httpd ...... 验证测试 # 查看镜像并创建容器 [rootdocker ~]# docker images httpd:latest REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest c1e854cde1f4 About a minute ago 299MB [rootdocker ~]# docker run -itd --name apache httpd:latest cc2b82ad0367172c344c7207def94c4c438027c60859e94883e440b53a860a93# 查看容器地址并访问验证 [rootdocker ~]# docker inspect apache |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 $(docker ps -aq) nginx 镜像 拷贝 nginx-1.22.1.tar.gz 到 docker 主机[rootecs-proxy ]# rsync -av nginx-1.22.1.tar.gz 192.168.1.32:/root/ #将nginx软件从真机上传到 该机器 手工部署 # 创建容器 [rootdocker ~]# docker run -itd --name web mylinux:latest a1448547a12c15c8b1d1defa76e96f63f0f68ccb6bdeb59958ee57fc5dfac11e # 拷贝 nginx 源码包到容器内 [rootdocker ~]# docker cp nginx-1.22.1.tar.gz web:/ Successfully copied 1.08MB to web:/ # 进入容器配置 [rootdocker ~]# docker exec -it web bash # 安装编译工具和依赖软件包 [roota1448547a12c /]# dnf install -y openssl-devel pcre-devel gcc make [roota1448547a12c /]# dnf clean all # 编译安装 [roota1448547a12c /]# tar zxf nginx-1.22.1.tar.gz [roota1448547a12c /]# cd nginx-1.22.1/ [roota1448547a12c nginx-1.22.1]# ./configure --prefix/usr/local/nginx --with-pcre --with-http_ssl_module [roota1448547a12c nginx-1.22.1]# make make install # 设置默认首页 [roota1448547a12c nginx-1.22.1]# echo Nginx is running ! /usr/local/nginx/html/index.html # 添加 nginx 到环境变量 [roota1448547a12c nginx-1.22.1]# export PATH${PATH}:/usr/local/nginx/sbin # 启动服务 [roota1448547a12c nginx-1.22.1]# nginx -g daemon off; # 退出容器 [root153c0df095e2 nginx-1.22.1]# exit 制作镜像 # 将编译好的 nginx 拷贝出来 [rootdocker ~]# mkdir nginx [rootdocker ~]# docker cp web:/usr/local/nginx /root/nginx/nginx Successfully copied 5.82MB to /root/nginx/ # 编写 Dockerfile 文件 [rootdocker ~]# vim nginx/Dockerfile FROM mylinux:latest RUN dnf install -y pcre openssl dnf clean all COPY nginx /usr/local/nginx 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 ...... 验证测试 # 查看镜像并创建容器 [rootdocker ~]# docker images nginx:latest REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 645dd2d9a8ec 3 minutes ago 274MB [rootdocker ~]# docker run -itd --name nginx nginx:latest e440b53a860a93cc2b82ad0367172c344c7207def94c4c438027c60859e94883# 查看容器地址并访问验证 [rootdocker ~]# docker inspect nginx |grep -i IPAddress [rootdocker ~]# curl http://172.17.0.2/ Nginx is running ![rootdocker ~]# docker rm -f $(docker ps -aq) 多阶段镜像 #什么是多阶段镜像  通俗来说就是把一个镜像的编译与多个模块配置结合到一起 #游戏里来说就是你制造了一个怪物的同时并给他设定好了升级程序发生进化 [rootdocker ~]# rm -rf nginx/nginx [rootdocker ~]# mv /root/nginx-1.22.1.tar.gz nginx/ [rootdocker ~]# vim nginx/Dockerfile # 第一阶段编译程序 FROM mylinux:latest as builder ADD nginx-1.22.1.tar.gz / WORKDIR /nginx-1.22.1 RUN dnf install -y openssl-devel pcre-devel gcc make RUN ./configure --prefix/usr/local/nginx --with-pcre --with-http_ssl_module RUN make make install RUN echo Nginx is running ! /usr/local/nginx/html/index.html# 第二阶段最终镜像 FROM mylinux:latest RUN dnf install -y pcre openssl dnf clean all COPY --frombuilder /usr/local/nginx /usr/local/nginx 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 ...... php-fpm 镜像 手工部署 [rootdocker ~]# docker run -it --name myphp mylinux:latest [rootcbcf3d90c02e /]# dnf install -y php-fpm # 修改配置文件 [rootcbcf3d90c02e /]# vim /etc/php-fpm.d/www.conf 38: listen 127.0.0.1:9000 # 创建目录并授权 [rootcbcf3d90c02e /]# mkdir /run/php-fpm [rootcbcf3d90c02e /]# chown -R nobody.nobody /var/log/php-fpm /run/php-fpm # 使用 sudo 且换用户 [rootcbcf3d90c02e /]# dnf install -y sudo [rootcbcf3d90c02e /]# sudo -u nobody /bin/bash # 使用 nobody 启动服务 bash-4.4$ /usr/sbin/php-fpm --nodaemonize [04-Sep-2023 09:58:01] NOTICE: [pool www] user directive is ignored when FPM is not running as root [04-Sep-2023 09:58:01] NOTICE: [pool www] group directive is ignored when FPM is not running as root [04-Sep-2023 09:58:01] NOTICE: fpm is running, pid 1 [04-Sep-2023 09:58:01] NOTICE: ready to handle connections [04-Sep-2023 09:58:01] NOTICE: systemd monitor interval set to 10000ms 制作镜像 # 编写 dockerfile 文件 [rootdocker ~]# mkdir php [rootdocker ~]# docker cp myphp:/etc/php-fpm.d/www.conf /root/php/www.conf [rootdocker ~]# vim php/Dockerfile FROM mylinux:latest RUN dnf install -y php-fpm dnf clean all \mkdir -p /run/php-fpm \chown -R nobody.nobody /run/php-fpm /var/log/php-fpm COPY www.conf /etc/php-fpm.d/www.conf USER nobody EXPOSE 9000/tcp CMD [/usr/sbin/php-fpm, --nodaemonize][rootdocker ~]# docker build -t php-fpm:latest php 验证测试 # 查看镜像并创建容器 [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 php php-fpm:latest 6eeff6af4a6469c298944b2bdd2ba69f32ebcbc6cb683a0a05af4eefbf90e8c1# 验证服务 [rootdocker ~]# docker exec -it php /bin/bash # 验证用户 bash-4.4$ id uid65534(nobody) gid65534(nobody) groups65534(nobody) # 我们无法直接调用 php 服务可以通过查看进程验证服务 bash-4.4$ ps -ef UID PID PPID C STIME CMD nobody 1 0 0 16:13 php-fpm: master process (/etc/php-fpm.conf) nobody 7 1 0 16:13 php-fpm: pool www nobody 8 1 0 16:13 php-fpm: pool www nobody 17 0 0 16:13 /bin/bash nobody 19 17 0 16:13 ps -ef bash-4.4$ exit[rootdocker ~]# docker rm -f $(docker ps -aq) #前面介绍的是制作镜像与制作使用dockerfile文件解下来带来的是私有 镜像仓库的配置与使用。 三、私有仓库 环境准备 主机名ip地址最低配置registry192.168.1.352CPU,4G内存 registry 安装 # 在 registry 上安装私有仓库 [rootregistry ~]# dnf install -y docker-distribution # 启动私有仓库并设置开机自启动 [rootregistry ~]# systemctl enable --now docker-distribution 客户端配置 所有 node 节点都需要配置#记住是所有被控制的 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 [rootdocker ~]# docker info 上传镜像 # 给 nginx 镜像设置标签 [rootdocker ~]# docker tag nginx:latest registry:5000/img/myimg:nginx # 上传 nginx 镜像 [rootdocker ~]# docker push registry:5000/img/myimg:nginx The push refers to repository [registry:5000/img/myimg] c9d01852a13b: Pushed ...... nginx: 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:[nginx, 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: [nginx,php-fpm] } 创建容器 # 删除所有容器 [rootdocker ~]# docker rm -f $(docker ps -aq) ......# 删除所有镜像 [rootdocker ~]# docker rmi -f $(docker images -q) ......# 使用仓库中的镜像运行容器 [rootdocker ~]# docker run -itd --rm registry:5000/img/myimg:nginx 2b7cd6d88a7665dbea0a4b3d99478e9f302c0a5661d7676d6d3bd3cb6d181# library 是默认路径可以省略路径地址 [rootdocker ~]# docker run -itd --rm httpd:latest 634766f788d665dbea0a4b39709e0a2cc8624fd99478e9f302c0a5661d767 CLOUD 08 一、容器服务发布 #对外发布服务容器需要绑定端口才能加以区分控制 #上学的时候遇到班上有同学同门的情况时年级大的会叫 大XX年级小的会叫小xx。一个道理这里是为了方便访问不与其他服务默认端口冲突。 (*^▽^*) 端口绑定 docker run -itd -p 宿主机端口:容器端口 镜像:标签 # 端口绑定 [rootdocker ~]# docker run -itd --rm --name web -p 80:80 myos:nginx # 绑定后直接访问宿主机的 IP 地址即可 [rootdocker ~]# curl http://192.168.1.31 Nginx is running !# 一个端口只能绑定唯一容器 [rootdocker ~]# docker run -itd --rm -p 80:80 myos:httpd ...... Bind for 0.0.0.0:80 failed: port is already allocated.# 使用不同端口绑定 [rootdocker ~]# docker run -itd --rm -p 8080:80 myos:httpd 3c22b1d9c7484c03648d9c64fe073953fb9460015b6f2a# 绑定后访问验证 [rootdocker ~]# curl http://192.168.1.31:8080 Welcome to The Apache. 容器存储卷 docker run -itd -v 宿主机对象:容器内对象 镜像:标签 # 创建卷目录并添加测试页面 [rootdocker ~]# mkdir /var/webroot [rootdocker ~]# echo hello world /var/webroot/index.html# 使用卷映射数据目录 [rootdocker ~]# docker rm -f web [rootdocker ~]# docker run -itd --rm --name web -p 80:80 \-v /var/webroot:/usr/local/nginx/html myos:nginx[rootdocker ~]# curl http://192.168.1.31/ hello world# 修改数据卷内容可以直接在容器内体现 [rootecs-proxy s4]# rsync -av public/info.php 192.168.1.31:/var/webroot/ [rootecs-proxy s4]# curl http://192.168.1.31/info.php ?PHP ...... 修改配置文件 # 获取配置文件 [rootdocker ~]# docker cp web:/usr/local/nginx/conf ./conf Successfully copied 45.1kB to /root/conf# 编辑配置文件添加 php 解析配置 [rootdocker ~]# vim conf/nginx.conflocation ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}# 使用卷映射配置文件重建 nginx 容器 [rootdocker ~]# docker rm -f web [rootdocker ~]# docker run -itd --rm --name web -p 80:80 \-v /root/conf:/usr/local/nginx/conf \-v /var/webroot:/usr/local/nginx/html myos:nginx# 访问验证 [rootdocker ~]# curl http://192.168.1.31/info.php html headtitle404 Not Found/title/head body centerh1404 Not Found/h1/center hrcenternginx/1.22.1/center /body /html 容器网络通信 实验架构图例 共享名称空间 # 使用 nginx 的网络名称空间 [rootdocker ~]# docker run -itd --rm --name php --networkcontainer:web myos:php-fpm d5a02b75486ce428f02b25f869f21299387fa4f51a605f478b466656d7c85c6f[rootdocker ~]# curl http://192.168.1.31/info.php File not found.[rootdocker ~]# docker exec -it web ss -ltun Netid State Recv-Q Send-Q Local Address:Port tcp LISTEN 0 128 127.0.0.1:9000 tcp LISTEN 0 128 *:80# 为 php 增加数据卷 [rootdocker ~]# docker rm -f php [rootdocker ~]# docker run -itd --rm --name php --networkcontainer:web \-v /var/webroot:/usr/local/nginx/html myos:php-fpm[rootdocker ~]# curl http://192.168.1.31/info.php pre Array ([REMOTE_ADDR] 192.168.1.31[REQUEST_METHOD] GET[HTTP_USER_AGENT] curl/7.61.1[REQUEST_URI] /info.php ) php_host: da7df895c434 1229 二、微服务编排 #先来点简单的CLOUD 二周目 在详细介绍。 #下面这个格式是你必须记住的基本格式。编写镜像微服务的最最最简单的格式要求熟练掌握。 服务编排与治理 项目文件 # 创建项目文件 [rootdocker ~]# vim docker-compose.yaml name: myweb version: 3 services:nginxsvc:container_name: nginximage: myos:nginx 项目管理命令 指令说明up创建项目并启动容器ls列出可以管理的项目images列出项目使用的镜像ps显示项目中容器的状态logs查看下项目中容器的日志start/stop/restart启动项目/停止项目/重启项目down删除项目容器及网络 容器项目 容器项目管理 # 创建项目并启动 [rootdocker ~]# docker compose -f docker-compose.yaml up -d [] Running 1/2⠸ Network myweb_default Created 0.4s ✔ Container nginx Started 0.3s # 查看项目 [rootdocker ~]# docker compose ls -a NAME STATUS CONFIG FILES myweb running(1) /root/docker-compose.yaml# 查看项目中的容器状态 [rootdocker ~]# docker compose -p myweb ps NAME IMAGE COMMAND SERVICE PORTS nginx myos:nginx nginx -g daemon… nginxsvc 80/tcp# 查看项目使用的镜像 [rootdocker ~]# docker compose -p myweb images CONTAINER REPOSITORY TAG IMAGE ID SIZE nginx myos nginx 10dc658da2fe 274MB# 查看项目中容器的日志 [rootdocker ~]# docker compose -p myweb logs nginx | 2023/02/13 13:55:39 [error] 7#0: *1 open() ......# 启动、停止、重启项目 [rootdocker ~]# docker compose -p myweb stop [] Stopping 1/1✔ Container nginx Stopped 0.1s [rootdocker ~]# docker compose -p myweb start [] Running 1/1✔ Container nginx Started 0.3s [rootdocker ~]# docker compose -p myweb restart [] Restarting 1/1✔ Container nginx Started 0.3s # 删除项目 [rootdocker ~]# docker compose -p myweb down [] Running 2/1✔ Container nginx Removed 0.1s ✔ Network myweb_default Removed 0.1s compose 语法 指令说明networks配置容器连接的网络container_name指定容器名称depends_on解决容器的依赖、启动先后的问题command覆盖容器启动后默认执行的命令environment设置环境变量image指定为镜像名称或镜像 IDnetwork_mode设置网络模式restart容器保护策略[always、no、on-failure]ports暴露端口信息volumes数据卷,支持 [volume、bind、tmpfs、npipe] 容器服务编排 #下面的属于进阶版本 [rootdocker ~]# vim docker-compose.yaml name: myweb version: 3 services:nginxsvc:container_name: nginximage: myos:nginxrestart: alwaysvolumes:- type: bindsource: /root/conf/nginx.conftarget: /usr/local/nginx/conf/nginx.conf- type: bindsource: /var/webroottarget: /usr/local/nginx/htmlnetwork_mode: bridgeports:- 80:80environment:- TZAsia/Shanghaiphp-fpm:container_name: php-fpmimage: myos:php-fpmrestart: alwaysvolumes:- type: bindsource: /var/webroottarget: /usr/local/nginx/htmldepends_on:- nginxsvcnetwork_mode: container:nginx 验证项目 # 创建,并启动项目 [rootdocker ~]# docker rm -f $(docker ps -aq) [rootdocker ~]# docker compose -f docker-compose.yaml up -d [] Running 2/2⠿ Container nginx Started 0.3s⠿ Container php-fpm Started 0.3s# 查看项目 [rootdocker ~]# docker compose ls -a NAME STATUS CONFIG FILES myweb running(2) /root/docker-compose.yaml# 查看容器状态验证服务 [rootdocker ~]# docker compose -p myweb ps NAME COMMAND SERVICE STATUS nginx nginx -g daemon of... nginx running ...... php-fpm php-fpm --nodaemoni... php-fpm running ......# 访问 php 页面验证 [rootdocker ~]# curl -s http://127.0.0.1/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: 7e037978c775 1229 嵌入式脚本 # 拓展提高 [rootdocker ~]# vim docker-script.yaml name: mycmd version: 3 services:shell:container_name: mycmdimage: myos:8.5command:- sh- -c- |for i in {1..9}dosleep 1echo ${HOSTNAME} $${HOSTNAME}done[rootdocker ~]# docker compose -f docker-script.yaml up -d [rootdocker ~]# docker compose ls -a NAME STATUS CONFIG FILES mycmd running(1) /root/docker-script.yaml [rootdocker ~]# docker compose -p mycmd logs mycmd | docker-0001 af878f933612 mycmd | docker-0001 af878f933612 mycmd | docker-0001 af878f933612 ...... 三、harbor仓库 #前面的 私人仓库只是小打小闹真正用的上的还得是云端上的harbor仓库 环境配置 主机名ip地址最低配置harbor192.168.1.302CPU,4G内存 安装部署 docker [rootharbor ~]# vim /etc/hosts 192.168.1.30 harbor# 安装部署 docker 及 compose 组件 [rootharbor ~]# dnf install -y docker-ce [rootharbor ~]# systemctl enable --now docker 拷贝软件包到 harbor 主机[rootecs-proxy ]# rsync -av harbor-* 192.168.1.30:/root/#该软件包有好几个镜像都是自己git上爬的平常没事可以自己收集真实可靠的软件软方便上传 harbor 仓库中使用。 创建 https 证书  # 导入 harbor 项目镜像 [rootharbor ~]# tar -zxf harbor-v2.9.2.tgz -C /usr/local/ [rootharbor ~]# cd /usr/local/harbor [rootharbor harbor]# docker load -i harbor.v2.9.2.tar.gz # 创建 https 证书 [rootharbor harbor]# mkdir tls [rootharbor harbor]# openssl genrsa -out tls/cert.key 2048 [rootharbor harbor]# openssl req -new -x509 -days 3650 \-key tls/cert.key -out tls/cert.crt \-subj /CCN/STBJ/LBJ/OTedu/OUNSD/CNharbor 创建并启动项目 #17,18行的配置文件名记好。别记错了   ^_^ #36 行是你 harbor admin管理员的密码记不住了可以来这里看是在记不住自己写到excel 表格里面也可以。 # 修改配置文件 [rootharbor harbor]# cp harbor.yml.tmpl harbor.yml [rootharbor harbor]# vim harbor.yml 05: hostname: harbor 08: # http: 10: # port: 80 17: certificate: /usr/local/harbor/tls/cert.crt 18: private_key: /usr/local/harbor/tls/cert.key 36: harbor_admin_password: 登录密码# 预安装环境检查生成项目文件 [rootharbor harbor]# /usr/local/harbor/prepare # 创建并启动项目 [rootharbor harbor]# docker compose -f docker-compose.yml up -d # 添加开机自启动 [rootharbor harbor]# chmod 0755 /etc/rc.d/rc.local [rootharbor harbor]# echo /usr/bin/docker compose -p harbor start /etc/rc.d/rc.local 查看验证项目 # 查看项目 [rootharbor ~]# docker compose ls -a NAME STATUS CONFIG FILES harbor running(9) /usr/local/harbor/docker-compose.yml # 查看容器状态 [rootharbor ~]# docker compose -p harbor ps NAME COMMAND SERVICE STATUS harbor-core /harbor/entrypoint.… core running (healthy) harbor-db /docker-entrypoint.… postgresql running (healthy) harbor-jobservice /harbor/entrypoint.… jobservice running (healthy) harbor-log /bin/sh -c /usr/loc… log running (healthy) harbor-portal nginx -g daemon of… portal running (healthy) nginx nginx -g daemon of… proxy running (healthy) redis redis-server /etc/r… redis running (healthy) registry /home/harbor/entryp… registry running (healthy) registryctl /home/harbor/start.… registryctl running (healthy) harbor 管理 容器管理命令说明docker login登录私有镜像仓库docker logout退出登录 登录私有仓库 # 添加主机配置 [rootdocker ~]# vim /etc/hosts 192.168.1.30 harbor# 添加私有仓库配置 [rootdocker ~]# vim /etc/docker/daemon.json {registry-mirrors: [https://harbor:443, 其他镜像仓库],insecure-registries:[harbor:443, 其他镜像仓库] } [rootdocker ~]# systemctl restart docker# 登录 harbor 仓库 [rootdocker ~]# docker login harbor:443 Username: 登录用户 Password: 登录密码 ... ... Login Succeeded # 认证信息记录文件 [rootdocker ~]# cat /root/.docker/config.json {auths: {harbor:443: {auth: bHVjazoqKioqKioqKg}} } # 退出登录 [rootdocker ~]# docker logout harbor:443 Removing login credentials for harbor:443 上传镜像 # 设置标签 [rootdocker ~]# docker tag myos:httpd harbor:443/private/httpd:latest # 没有登录上传失败 [rootdocker ~]# docker push harbor:443/private/httpd:latest 65dbea0a4b39: Preparing unauthorized: unauthorized to access repository ......# 登录成功后才可以上传 [rootdocker ~]# docker login harbor:443 Username: 登录用户 Password: 登录密码Login Succeeded # 上传成功 [rootdocker ~]# docker push harbor:443/private/httpd:latest The push refers to repository [harbor:443/private/httpd] ......# 上传镜像到 library 项目 [rootdocker ~]# docker tag myos:latest harbor:443/library/myos:latest # 没有权限上传失败 [rootdocker ~]# docker push harbor:443/library/myos:latest The push refers to repository [harbor:443/library/myos] 65dbea0a4b39: Preparing unauthorized: unauthorized to access repository: ......# 赋权后重新上传镜像 [rootdocker ~]# docker push harbor:443/library/myos:latest The push refers to repository [harbor:443/library/myos] ...... #上传完镜像就可以登录harbor仓库网页端查看了注意网址为: https:IP443   #ip为你配置的harbor仓库 IP地址。 为什么要加上 https呢 因为用了网页加密模块443端口则是模块服务的默认端口。 一开始登录进去是 admin 管理员账户提醒你配置新密码你配置的密码自己要记住。不然用的时候抓马。。。。。 总体来说CLOUD 一周目的内容完全讲述完了主要包括了云平台的使用docker软件命令的使用容器镜像虚拟化之间的关系。dockerfile与微服务地点编写.   还有镜像的制作上传。 私有镜像仓库与harbor仓库的简单使用。 下周末我会开始 云计算 CLOUD 二周目的课程记录后续也会把 面试题类型 单开一个专栏系列写出来。  敬请期待吧 ^_^
http://www.hkea.cn/news/14336502/

相关文章:

  • 福州做推广有哪些网站高端医院网站建设
  • 自己做网站用什么软件微信 wordpress插件
  • 网站做收款要什么条件百度一下做网站
  • 重新安wordpress网站高校网站建设方案
  • 做网站的网址怎么弄竹业网站建设
  • 网站建设意见建议河南专业网站建设开发团队
  • 房产信息网站系统官网做的好看的网站有哪些
  • 网站备案期间做什么班级网站怎么做ppt
  • jq动画效果网站wordpress文章备份插件
  • 无锡 公共建设中心网站中国网站有哪些
  • 网站自主制作平台广东网页制作推广
  • h5网站的优势wordpress 安装中文
  • 小公司做网站需要注意什么响水做网站的价格
  • 网站建好了seo怎么做学的专业是编课 网站开发英语翻译
  • 如何查看网站服务器类型如何查网站的百度快照
  • 承接网站建设男女做暧昧视频网站
  • 深圳网站建设首选上榜网络装修网站怎么做的好
  • 免费设计网站素材如何设计网站后台
  • 网站建设种类微信小程序开发教程官方文档
  • 网站建设程序开发注册公司费用会计分录
  • 苏州建设交易中心网站法治网站的建设整改措施
  • 网站进度条做多大wordpress开启缩略图
  • 设计网站需要的知识酷家乐装修设计软件
  • 做网站价格ihanshiapp软件制作教程
  • 泰安企业网站制作wordpress 视频页面
  • 网站被黑了经典重庆论坛新闻评论
  • 什么是网站链接优化十大汽车公司
  • 网站后台排版布局php红酒网站建设
  • 栖霞建设招标网站如何布局网站
  • 徐州贾汪区建设局网站公众号免费推广平台