不使用dockerfile的方式制作一个Ubuntu20.04的镜像

制作一个ubuntu20.04的docker镜像

一、先下载一个ubuntu20.04的最小系统

  1. 执行指令:sudo debootstrap --variant=minbase focal /home/test/tmp/ubuntu http://cn.archive.ubuntu.com/ubuntu

可替换:路径/home/test,源http://cn.archive.ubuntu.com/ubuntu

  1. 现在,在对应的路径下就有一个最小系统了。

二、可以在最小系统中做一些自适应的配置了

  1. 比如更新源列表:./etc/apt/sources.list
  2. 比如安装一些github上的库,放到最小系统的目录中去

三、进入到系统中做一些库的安装

  1. 执行:sudo chroot $ubuntu_dir /bin/bash,其中$ubuntu_dir 是目录的位置,比如/home/test/tmp/ubuntu
  1. 执行一些安装工具的命令,比如apt install -y net-tools

四、打包系统镜像给docker使用

  1. 打包sudo tar -czf ubuntu.tar.gz ./tmp/ubuntu

  2. 导入镜像:docker import ubuntu.tar.gz image_name

    1. image_name为镜像名

现在已经有这个镜像了。

五、启动+后台运行

  1. 执行:docker run -itd --name 容器名 镜像名 /bin/bash
  2. 执行:docker ps -a 可以看到它已经在后台运行了
  3. 执行:docker exec -it 容器名 bash 可以进入到其中

六、 再添加一张网卡

  1. 我们的电脑上有一张名叫docker0的网卡,进而我们的容器也都在此基础上诞生了各自的网卡,分配了各自的ip

电脑:

容器内:

  1. 我想再搞一张网卡,做成拥有双网卡的容器,所以要在自己的电脑新建一张类似docker0的docker网桥

    1. docker network create -d bridge --subnet 192.168.1.0/24 --gateway 192.168.1.254 网卡名
    2. 此时执行docker network ls就可以看到我们新建的类型为bridge的网卡
    3. docker network connect 网卡名 --ip 192.168.1.1 容器名让容器中拥有一张新的网卡
相关推荐
金刚猿6 小时前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong6 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿6 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
70asunflower10 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
春日见11 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe211 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
星火s漫天12 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
MonkeyKing_sunyuhua14 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka
醇氧14 小时前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
技术路上的探险家15 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker