Myluzh Blog

Docker镜像管理:掌握save/load与export/import的精髓

2024-6-7 myluzh Docker

0x01 Docker Save & Load docker save: 用于将Docker镜像保存为.tar文件。这个过程会保存镜像的所有层、元数据和历史记录,因此生成的文件较大。当你需要备份或者迁移某个镜像时非常有用,尤其是当你需要保留镜像的全部构建历史以便将来在其他地方恢复时。 docker save -o my_image.tar my_image:tag docker load: 用来载入由docker save创建的镜像文件,将其恢复到本地镜像库中。这个过程不会允许你为导入的镜像指定新的名称,如果本地已有同名镜像,它会被覆盖。 docker load -i my_image.tar 0x02 Docker Export & Import docker export: 用于将运行中的Docker容器导出为一个 tar 归档文件。与save不同,export只导出容器当前的状态(即最终的文件系统层),不包含容器的元数据或历史记录,因此导出的文件通常比用save导出的镜像文件要小。 docker export my_container > my_container.tar docker impo...

阅读全文>>

标签: docker import save export load

评论(0) (350)

关于物理网络跟docker默认网段172.17.0.0/16冲突问题

2024-5-24 myluzh Docker

0x01 描述 在使用 Docker 时发现其默认的网段与你的内网网段冲突,可以考虑修改 Docker 的默认网段以避免冲突。 0x02 解决 打开 daemon.json 文件,并添加或修改 "bip"(bridge IP)字段来设置 Docker 的网桥 IP 地址和子网掩码。你可以选择一个与你的内网网段不冲突的网段。例如: # vim /etc/docker/daemon.json { "bip": "192.168.0.1/24" } # systemctl reload docker # systemctl restart docker

阅读全文>>

评论(0) (177)

Docker多阶段构建

2024-2-22 myluzh Docker

0x01 概述 Docker 分阶段构建是指在 Dockerfile 中使用多个 FROM 指令来分割构建过程,将整个构建过程分为多个阶段。每个阶段可以有自己的基础镜像,执行特定的构建步骤,并且可以从前一个阶段复制构建结果。最终只有最后一个阶段的构建结果会被保留在最终的镜像中,其它阶段的中间产物不会被包含在最终的镜像中。 分阶段构建的优点包括: 减小镜像大小:通过将构建过程分解为多个阶段,可以避免将构建工具和中间产物包含在最终的镜像中,从而减小镜像的大小。 加快构建速度:每个阶段可以并行执行,节省构建时间。 更好的可维护性:分阶段构建可以更清晰地组织构建过程,使得 Dockerfile 更易于阅读和维护。 0x02 示例 下面是一个使用 Docker 分阶段构建 Python 应用的示例: # 第一阶段:构建依赖环境 FROM python:3.8 AS builder WORKDIR /app COPY requirements.txt . RUN pip install --upgrade pip RUN pip install -r ...

阅读全文>>

标签: docker 多阶段 构建 builder

评论(0) (238)

清理Docker容器日志bash

2023-12-19 myluzh Docker

vim clear-docker-loggin.sh #!/bin/sh # 清理Docker容器日志文件的脚本 logs=$(find /var/lib/docker/containers/ -name *-json.log) for log in $logs do echo -n "clean logs :"; du -sh $log cat /dev/null > $log done # 清理不再使用的Docker镜像 docker image prune -a -f # 清理不再运行的Docker容器 docker container prune -f # 清理所有未被使用的Docker卷 docker volume rm $(docker volume ls -qf dangling=true)

阅读全文>>

标签: 日志 docker log 清理

评论(0) (248)

Docker部署GitLab-CE

2023-11-8 myluzh Docker

0x01 docker部署 docker run -d \ --name gitlab \ -p 9443:443 \ -p 9999:80 \ -p 9998:22 \ -v /etc/gitlab:/etc/gitlab \ -v /var/log/gitlab:/var/log/gitlab \ -v /var/opt/gitlab:/var/opt/gitlab \ -v /etc/localtime:/etc/localtime \ --privileged=true \ gitlab/gitlab-ce:latest 访问地址:http://IP:9999  首次登陆页面的账号是root,密码则是临时密码,保存在/etc/gitlab/initial_root_password中,初始密码保存24小时,自动删除,首次登陆后需要修改密码操作。 0x02 配置ssh秘钥 SSH密钥用于在您的电脑和GitLab建立安全连接。 SSH 指纹验证客户端是否连接到正确的主机。 # 在本地计算机上生成了SSH密钥对,请将 "your_ema...

阅读全文>>

标签: docker gitlib git

评论(0) (276)

Docker部署Jenkins与创建流水线笔记

2023-11-7 myluzh Docker

0x00 前言 使用docker部署jenkins后使用流水线docker build提示找不到docker命令,找了好久解决了,需要把docker挂载出来。 第二个问题是docker login 私有仓的时候 提示证书不对,需要在配置文件添加下insecure-registries 0x01 jenkins正确部署命令 docker run --name jenkins \ -u root \ --rm -d \ -p 8092:8080 \ -v /var/jenkins_home:/var/jenkins_home \ -v $(which docker):/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/docker/:/etc/docker \ jenkins/jenkins:lts 启动后在本机/etc/docker/daemon.json上添加insecure-regstries里面写上你jenkins流水线do...

阅读全文>>

标签: docker devops cicd jenkins

评论(0) (256)