Docker 容器中安装 Docker
本文讲的是在Docker中安装Ubuntu容器,然后在这个Ubuntu容器中再安装Docker。或许这样可以省下买服务器的钱,当然这只是为了学习测试使用,真正项目上还是需要买服务器的。
系统环境:
Linux: WSL2 Ubuntu 20.04
Docker: 20.10.8
执行步骤:
1. 拉取镜像、启动容器、复制文件到容器内
# 1. 下载官方ubuntu
docker pull ubuntu:20.04
# 2. 运行容器 ub1
docker run -it --name ub1 ubuntu:20.04
# 按下 Ctrl + P + Q 让容器后台运行
# 3. 将家目录下的必要文件复制到容器中
docker cp .bash_logout ub1:/root
docker cp .bashrc ub1:/root
docker cp .profile ub1:/root
2. 安装必备软件、配置容器
# 4. 进入容器
docker attach ub1
# 5. 更新软件源并安装必备软件
apt update & apt install -y vim curl net-tools iproute2 iputils-ping
# 6. 进入家目录
cd ~
# 7. 修改复制进来的文件的所有者
chown root.root .bash* .profile
# 8. 设置用户名高亮:进入 .bashrc,追加下面内容
vim ~/.bashrc
# ================ 追加的内容 start ===============
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34;40m\]\u\[\033[00;00;40m\]@\[\033[01;33;40m\]\h\[\033[00;31;40m\]:\[\033[00;00;40m\]\w \[\033[01;32;40m\]\$ \[\033[01;36;40m\]'
# ================ 追加的内容 end ===============
# 8. 更新配置信息
source ~/.bashrc
3. 安装Docker
# 9. 安装Docker
# 9.1 移除旧版本
apt-get remove docker docker-engine docker.io containerd runc
# 9.2 安装工具包
apt update & apt-get install -y ca-certificates curl gnupg lsb-release
# 9.3 添加 GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 9.4 设置Docker仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# 9.5 安装 Docker Engine
apt update & apt-get install -y docker-ce docker-ce-cli containerd.io
# 9.6 安装后需要选时区
# 10. 查看Docker
# 发现只有 Docker Engine
docker version
4. 打包镜像、启动容器
# 11. 先保存当前镜像
docker commit -a "bpf" -m "add docker and tools" ub1 dockerubuntu
# 12. 运行新的容器
docker run -it --name ub2 --hostname docker1 \
-v /var/run/docker.sock:/var/run/docker.sock \
--network mynet dockerubuntu
注:如果是安装其他Linux发行版也是类似的步骤,需要把最初的Ubuntu:20.04
换成对应的镜像,和在官方文档中查找对应版本的下载Docker的步骤。
参考资料
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~