docker与harbor

发布时间 2023-11-30 21:17:32作者: 辰令

仓库registry

公共仓库
     Docker Hub 这样的公共仓库	 
本地仓库
     docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。 
	 Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装
        还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有CA中心,而Clair则是容器安全扫描工具	

安装步骤

 1.安装docker并运行
     docker  --version
	   离线环境中安装Docker之前,我们需要先安装一些依赖项。
	    这些依赖项包括containerd.io、runc、docker-ce-cli和docker-ce
 2.安装docker-compose并给执行权限  
    docker-compose --version
	   https://github.com/docker/compose/releases
 3.下载harbor
      https://github.com/goharbor/harbor/releases	
 4.解压并编辑配置文件	

 安装 docker-copose 权限
   {"insecure-registries": ["your-registry-url"]}
    insecure-registries": ["registry1的IP地址:端口号","registry2的IP地址:端口号"]	  
 
 harbor的日志存放路径为:
   /var/log/harbor
      Failed to write PID file: Permission denied

kind的安装

先安装好 Kind 执行 kind create cluster 便可, Kind 会自动下载所需的 Docker 镜像,并启动集群
  https://kind.sigs.k8s.io/docs/user/quick-start/#installing-from-release-binaries
  https://dl.k8s.io/release/v1.23.0/bin/linux/amd64/kubectl	
  https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl

    https://dl.k8s.io/release/v1.28.4/bin/linux/amd64/kubectl	  
 
 docker pull kindest/node
 docker pull kindest/base

docker network

 Driver: birdge  host  none containe
 docker中,网络的配置是以json格式存在的,下面我们就来看看每种类型网络配置信息
使用docker run 创建Docker容器,可以用–net或–network选项指定的网络模式	
   
  birdge: docker服务默认会创建一个docker0网桥,该桥接网络的名称是docker0,它是内核层连通了其他物理或虚拟网卡,
      这就是将所有容器和本地主机都放到同一个物理的网络中。
      docker默认指定了docker0接口的IP地址和子网掩码,让主机和容器之间可以通过网桥相互通讯
	默认选择bridge的情况下,容器启动后会通过DHCP获取一个地址
  host :直接使用宿主机的ip地址与外界进行通信,不再需要额外进行NAT转换	 
     
  Container
  
  none-null
容器间通信和外部(宿主机外的网络)与容器的通信。  
容器通信
     Docker 提供了容器间通信的功能,可以通过容器名称或 IP 地址进行通信
	   容器间可以通过 IP 地址相互通信 
	 外部环境和容器之间通信
	     通过宿主机的 IP 地址直接访问容器 host Port Mapping
	 自定义网络

排查

网络不可达,主要现象为 ping 不通,其可能原因为
端口不可达,主要现象为可以 ping 通,但 telnet 端口不通,其可能原因为
DNS 解析异常:主要现象为基础网络可以连通,访问域名报错无法解析,访问 IP 可以正常连通
大数据包丢包:主要现象为基础网络和端口均可以连通,小数据包收发无异常,大数据包丢包
    网络不可达(ping 不通):
    端口不可达(telnet 不通):
    DNS 解析异常(域名不通)
    大数据包丢失(大包不通)
	
###net.ipv4.ping_group_range 是 Linux 系统内核中的一个参数,它可以用来配置ping命令所使用的组 ID 范围。
  该参数的默认值为 {0, 65535},即组 ID 的最小值为 0,最大值为 65535	
    删除日志方式-删除大的 log 文件
    方式一:
      cat /dev/null>$log   
      Linux执行sudo echo xxx >> 命令提示权限不够的问题
        bash -c命令。该命令可以让bash运行整条字符串命令,前加sudo使得整条命令运行时具有root权限
          sudo bash -c 'echo aa >> a.txt'	  
    方法二:
     使用tee命令。该命令可以将管道中内容写入文件,只需要对该命令赋予root权限就可以操作a.txt文件
     echo aa |sudo tee -a a.txt >/dev/null
     注意:tee命令的-a选项是追加的意思,如果不加此选项,输出文本将覆盖文件 

docker network ls