可以在Ubuntu 20.04系统上配置Docker,并分别运行Ubuntu 22.04和18.04的Docker镜像。这些容器可以用来进行不同版本的Ubuntu系统测试和开发。
安装Docker
1.更新包索引并安装依赖项
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
2.添加Docker官方GPG密钥
此处开始需要科学上网
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3.添加Docker的APT源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4.更新包索引并安装Docker CE
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
5.启动并启用Docker服务
sudo systemctl start docker
sudo systemctl enable docker
6.验证Docker安装
sudo docker --version
7.安装Ubuntu 22.04系统的Docker镜像
sudo docker pull ubuntu:22.04
运行Ubuntu容器
1.运行Ubuntu 22.04容器
sudo docker run -it ubuntu:22.04
在Docker容器中使用Ubuntu系统
sudo docker exec -it <container_id> bash
sudo docker ps
在Docker容器中安装必要的软件
1. 更新包索引并安装软件包(例如net-tools)
apt update
apt install net-tools
提取Docker镜像
使用 docker save 命令将 Docker 镜像保存为一个 tar 文件,然后使用 docker load 命令来加载该镜像。
1.将 Docker 镜像保存为 tar 文件:
docker save -o <output-file>.tar <image-name>:<tag>
例如,将 ubuntu:20.04 镜像保存为 ubuntu_20.04.tar:
docker save -o ubuntu_20.04.tar ubuntu:20.04
2.将 tar 文件加载到 Docker:
docker load -i <input-file>.tar
例如:
docker load -i ubuntu_20.04.tar
推送到 Docker Hub 或私有注册表
1.登录到 Docker Hub:
docker login
2.标记镜像:
docker tag <image-name>:<tag> <your-username>/<repository>:<tag>
例如:
docker tag ubuntu:20.04 your-username/ubuntu:20.04
3.将镜像推送到 Docker Hub:
docker push <your-username>/<repository>:<tag>
例如:
docker push your-username/ubuntu:20.04
4.从 Docker Hub 拉取镜像:
docker pull <your-username>/<repository>:<tag>
例如:
docker pull your-username/ubuntu:20.04
导出为文件系统快照
导出一个容器的文件系统,可以使用 docker export 命令。这会导出一个正在运行或已停止容器的文件系统,而不是整个镜像。
1.创建并启动一个容器:
docker run --name <container-name> -d <image-name>:<tag>
例如:
docker run --name my_ubuntu_container -d ubuntu:20.04
2.导出容器文件系统:
docker export -o <output-file>.tar <container-name>
例如:
docker export -o my_ubuntu_container.tar my_ubuntu_container
3.加载导出的文件系统:
使用 docker import 命令将导出的文件系统导入为一个新镜像:
cat <output-file>.tar | docker import - <new-image-name>:<new-tag>
例如:
cat my_ubuntu_container.tar | docker import - my_new_ubuntu:20.04
总结
通过以上方法,可以灵活地提取和共享 Docker 镜像,满足不同的需求。保存为 tar 文件适用于本地备份和传输,推送到注册表适用于云端共享,而导出为文件系统快照适用于需要特定容器文件系统的情况。