首页 > 其他分享 >20230709

20230709

时间:2023-08-14 13:55:33浏览次数:38  
标签:harbor -- 20230709 nginx 镜像 docker proc

1.实现并总结容器跨主机的通信过程 第一步,先修改两个主机的docker默认ip地址(--bip 改成不相同的) vim /lib/systemd/system/docker.service ........... ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --bip=10.20.0.1/24 ............. 第二步,在两个主机分别添加静态路由和修改iptables允许响应报文的转发 注意:检查是否开启核心路由转发,net.ipv4.ip_forward = 1 route add -net 对方docker的网段 --gateway 对方主机的ip iptables -A FORWARD -s 宿主机网段  -j ACCEPT 2.总结Dockerfile的常见指令 FROM centos:7.9.2009 #在整个dockfile文件中除了注释之外的第一行,要是FROM指令,FROM 指令用于指定当前镜像(base image)引用的父镜像(parent image) MAINTAINER #(镜像的维护者信息,目前已经不推荐使用) LABEL “key” = “value” #设置镜像的属性标签 LABEL author="jack [email protected]" LABEL version="1.0" ADD [--chown=<user>:<group>] <src>... <dest> #用于添加宿主机本地的文件、目录、压缩等资源到镜像里面去,会自动解压tar.gz格式的压缩包,但不会自动解压zip包 ADD --chown=root:root test /opt/test COPY [--chown=<user>:<group>] <src>... <dest> #用于添加宿主机本地的文件、目录、压缩等资源到镜像里面去,不会解压任何压缩包 ENV MY_NAME="John Doe" #设置容器环境变量 USER <user>[:<group>] or USER <UID>[:<GID>] #指定运行操作的用户 RUN yum install vim unzip -y && cd /etc/nginx #执行shell命令,但是一定要以非交互式的方式执行 VOLUME ["/data/data1" , "/data/data2"] #定义volume WORKDIR /data/data1 #用于定义当前工作目录 EXPOSE <port> [<port>/<protocol>...] #声明要把容器的某些端口映射到宿主机   CMD有以上三种方式定义容器启动时所默认执行的命令或脚本  CMD ["executable" , "param1" , "param2"] (exec form, this is the preferred form) #推荐的可执行程序方式  CMD ["param1" , "param2"] (as default parameters to ENTRYPOINT) #作为ENTRYPOINT默认参数  CMD command param1 param2 (shell form) #基于shell命令的  如:基于CMD #镜像启动为一个容器时候的默认命令或脚本, • CMD ["/bin/bash"]  ENTRYPOINT #也可以用于定义容器在启动时候默认执行的命令或者脚本,如果是和CMD命令混合使用的时候,会将CMD的命令当做参数传递给 ENTRYPOINT后面的脚本,可以在脚本中对参数做判断并相应的容器初始化操作。  案例1: ENTRYPOINT ["top" , "-b"] CMD ["-c"] 等于如下一行: ENTRYPOINT ["top" , "-b" , "-c"]  案例2: ENTRYPOINT ["docker-entrypoint.sh"] #定义一个入口点脚本,并传递mysqld 参数 CMD ["mysqld"] 等于如下一行: ENTRYPOINT ["docker-entrypoint.sh" , "mysqld"]  使用总结: ENTRYPOINT(脚本) + CMD(当做参数传递给ENTRYPOINT)   3.基于Dockerfile Nginx镜像并验证可以启动为容器 docker pull ubuntu:22.04 vim dockerfile

FROM ubuntu:22.04
LABEL auth="glc"
ADD sources.list /etc/apt/sources.list
RUN apt update && apt install -y iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute gcc openssh-server lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip make
ADD nginx-1.22.0.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-1.22.0/ && ./configure --prefix=/apps/nginx && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/bin
RUN groupadd -g 2088 nginx && useradd -g nginx -s /usr/sbin/nologin -u 2088 nginx && chown -R nginx.nginx /apps/nginx
ADD nginx.conf /apps/nginx/conf/
ADD frontend.tar.gz /apps/nginx/html/

EXPOSE 80 443
CMD ["nginx","-g","daemon off;"]

docker build -t harbor.magedu.net/myserver/nginx:v1 .

docker run -d -p 80:80 harbor.magedu.net/myserver/nginx:v1

4.部署单机harbor并实现镜像的上传与下载 下载并上传安装包到宿主机(docker和docker-compose必须安装完成) tar xf harbor-offline-installer-v2.8.2.tgz cd harbor/ cp harbor.yml.tmpl harbor.yml vim harbor.yml hostname: harbor.magedu.net  修改访问名称

# http related config     
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80

# https related config
#https:
# https port for harbor, default is 443
# port: 443    注释https,之开启http
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path

harbor_admin_password: 123456   用户名admin,登陆密码设置

data_volume: /data/harbordata 数据目录,最好放一块固态

./install.sh --with-trivy 开启扫描

访问 宿主机ip的80或者配置/etc/hosts访问域名登陆查看

镜像上传的第一步,先docker login harbor名称,docker tag给镜像打标签(如果镜像之前就是harbor名称/项目名称,那就可以不用打标签了),最后docker push 上传镜像

镜像下载登录harbor,复制拉取命令(创建项目必须公开,如果不公开,拉取需要登录harbor才可以)

 

5.基于systemd实现容器的CPU及内存的使用限制  vim /etc/docker/daemon.json ......... "exec-opt":["native.cgroupdriver=systemd"], ............ docker run -it -m 256m --cpus=1.8 centos:7.6.1810 限制容器cpu为1.8个内存256m docker stats 查看限制情况

 

扩展: 1.总结镜像的分层构建流程  
  1. 先构建一个基础镜像baseimage,包括系统的发行版,以及一些必要的工具
  2. 以baseimage为父镜像,安装jdk/ningx/tomcat等,构建基本的业务环境镜像
  3. 以业务环境镜像为父镜像,上传代码文件,构建业务镜像
  4. 通过业务镜像运行容器,实现业务部属
  5.  

2.总结基于lxcfs对容器的内存及CPU的资源限制 apt install lxcfs docker的数据目录必须是xfs文件系统 vim /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 cgroup_enable=memory swapaccount=1 rootflages=pqouta" update-grub reboot   vim /etc/fstab /dev/sdb /data/docker xfs  default,prjquota 0 0 mount -a  docker run -it -m 256m --cpus 2 \ -v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw \ -v /var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw \ -v /var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw \ -v /var/lib/lxcfs/proc/stat:/proc/stat:rw \ -v /var/lib/lxcfs/proc/swaps:/proc/swaps:rw \ -v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw \ centos:7.6.1810 bash

标签:harbor,--,20230709,nginx,镜像,docker,proc
From: https://www.cnblogs.com/glc19980204/p/17628451.html

相关文章

  • 测试云服务器20230709
    最近使用虚拟服务器搭建了一台centos7,用来平时做个测试使用。有公网IP,带宽5M。在三丰云免费申请的截图配置可供大家参考一下。当使用三丰云的免费方案时,用户需要遵守三丰云的服务协议和使用规则,以确保服务的正常运行和数据的安全性。这些规定旨在保障所有用户的利益,并维护整个云平......
  • 「NOIP 模拟赛 20230709」T3 - 与行星相会 题解
    题目大意原题有一个\(n\timesn\)的点阵,将相邻的点连边得到一个\((n-1)\times(n-1)\)的网格。\(q\)次操作,每次删掉一条边,求删掉后边两端的点是否仍在一个连通块内。强制在线。题解显然,由于对偶图的性质,原图的一个割对应对偶图中的一个环,所以只需要删掉一条边时在对偶图中......
  • 成语积累 20230709
    踔厉奋发:踔:跳动;形容精神振作,意气奋发。近义:踔厉风发,踔厉骏发。例句:我们唯有~,笃行不怠,方能不负历史,不负时代,不负人民。不舞之鹤:不舞蹈的鹤。比喻名不副实的人,或讥讽人无能。例句:他总是夸夸其谈,说自己经历过许多大的场面,可真到了该委以重任之时,又远远的躲到了一边,不过是~。虚室生......
  • 20230709 - 一句SQL更新WordPress管理员密码
    该方法适用于有wordpress数据库权限,但忘记了管理员密码的情况UPDATEwp_usersSETuser_pass=MD5('new_password')WHEREwp_users.user_login='admin_username';更新时,密码为MD5加密字符串,此时可以使用new_password登录,登录后,WordPress会自动更新密码为新加密字符格式。......