云计算_Docker的配置和使用

docker 的 sudo权限

 如果还没有 docker group 就添加一个:
 sudo groupadd docker
 将用户加入该 group 内。然后退出并重新登录就生效啦。
 sudo gpasswd -a ${USER} docker
 重启 docker 服务
 sudo service docker restart
 切换当前会话到新 group 或者重启 X 会话
 newgrp - docker
 注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。

Docker 服务

   /usr/lib/systemd/system/docker.service
       /lib/systemd/system/docker.service
       /etc/systemd/system/docker.service.d
    ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data1/docker-data

Docker配置

 Storage Driver: overlay2
 Docker Root Dir: /home/var/lib/docker
 Registry: https://index.docker.io/v1/
 Registry Mirrors: http://docker.test.com/
 Insecure Registries:127.0.0.0/8
说明
 OverlayFS是内核提供的文件系统,overlay和overlay2是docker的存储驱动
	storage-driver
	,包括vfs、devicemapper、overlay、overlay2、aufs等等,其中最常用的就是aufs
      /var/lib/docker/aufs/layers 存放着镜像ID以及层级关系
      /var/lib/docker/aufs/diff   镜像层文件存储在  
    /var/lib/docker/graph       存放镜像 ID 以及json 文件
    /var/lib/docker
      builder
      buildkit
      containers
      image
      network
      overlay2
      plugins
      runtimes
      swarm
      tmp
      trust
      volumes
        sudo ls -alh overlay2/eca306ba512dcf
            committed
            diff
            link
            lower
            work
	/var/lib/docker 空间不足的迁移方案
	    0 .找个空间够的挂载点,把这目录的内容迁移过去 df 
		01. 停止docker服务
	    02. rsync -avz /var/lib/docker /opt/var/lib/
		03. 配置 /usr/lib/systemd/system/docker.service 
           ExecStart=/usr/bin/dockerd --graph=/opt/var/lib/docke
		04.重新加载和重启
          systemctl daemon-reload
          systemctl restart docker
		05.确认
		  docker info 
            Docker Root Dir
			
	 说明: rsync 全名Remote Sync
	     -a 选项表示,存档标志将保留从复制位置到目标位置的所有信息。比如用户权限,属主,属组,还有 metadata 元数据
		     -r, --recursive 对子目录以递归模式处理  -v, --verbose 详细模式输出
	        cp  scp mv 

docker配置文件

 docker proxy  相关参数的使用说明,可以参阅 man dockerd 帮助信息
 daemon.json 文件对 Docker Engine 进行配置和调整
 vim /etc/docker/daemon.json
 
 {
     "insecure-registries": ["docker.test.com"],
     "registry-mirrors": ["docker.test.com"]
 }
 然后执行下面命令
 
 systemctl daemon-reload
 systemctl restart docker
 执行 docker info 可见下面信息: Registry Mirrors: http://docker.test.com/
 如果无法解析或地址不对,请添加本地 host:11.11.11.11 docker.test.com
 
  “registry-mirrors”: [“https://192.498.89.232:89”], ————————设置镜像加速
  “insecure-registries”: [“120.123.122.123:12312”], ———————设置私有仓库地址可以设为http

登录私有仓库

 01. docker login --uername $username --password $password
       命令完成以后,会生成如下文件~/.docker/config.json
	   environment =  ["DOCKER_AUTH_CONFIG={\"auths\": {\"harbor.test.com\": { \"auth\": \"XXXXX\"}}}"]  

Docker排查过程

1.查看容器状态
 sudo docker ps -a

 # 调用容器内的 checkpoint.sh,并传入服务名称,检查该 Java 进程是否存在。
 # 两次健康检查的间隔 30s,超时时间为 5s,如果超过这个时间,本次健康检查就被视为失败,
 # retries 重试次数设置为 3,当连续失败指定次数后,则将容器状态视为 unhealthy
   status-- Up About an hour (unhealthy)
   
2.查看日志
  docker logs docker-swarm_dolphinscheduler-api_1
  docker logs -f docker-swarm_dolphinscheduler-api_1 # 跟随日志输出
  docker logs --tail 10 docker-swarm_dolphinscheduler-api_1 # 显示倒数10行日志  

 3.进入容器查看

Docker pull 的状态

等待、拉取开始、下载成功、检验、拉取成功:
Waiting
Downloading 
Pulling fs layer
Download complete
Verifying Checksum
Pull complete	
Aready exists	
 
Retrying in 1 second
 Download complete表示下载图层,
 而Pull complete表示图层已下载并提取到主机上
 Pull complete则是经过解压缩、校验之后导入到系统里去

批量删除docker容器

  docker中批量删除 tag为none的镜像或名字是none
   docker images|grep none|awk '{print $3}'|xargs docker rmi

查看docker 整体

docker info
docker system info ==  docker info 
docker system df   # 查看docker 空间使用情况
docker stats 
###docker清理(清理停止的容器,没用容器使用的网络,镜像,缓存)
    docker也有自带的清除命令,推荐将docker system prune -f --volumes 		
    docker image prune
    docker container prune
    docker volume prune
    docker network prune
    docker system prune 命令是修剪镜像、容器和网络的快捷方式。

查看单个docker

 --image
     docker history
 -- contain
     docker inspect
     docker diff
     docker logs
     docker top 
 -- docker images 
 -- docker ps -a
 -- docker run   == docker  + docker start

删除

   --- 删除所有未打 dangling 标签的镜像
    docker container prune --filter "until=24h" -f 
    docker rmi $(docker images -q -f dangling=true)  ==等价于  docker image prune -f
posted @ 2021-09-27 11:10  辰令  阅读(271)  评论(0编辑  收藏  举报