Docker基础教程(十九)Linux Ubuntu版安装教程:别再用“我电脑上没问题”当借口了!Docker Ubuntu安装魔法书,附咒语(代码)让你秒变环境管理大神!
第一章:缘起——我们为什么要拜Docker码头工人为师?
想象一下这个经典到让人血压升高的场景:
程序员小A,在本地MacBook上经过九九八十一天熬夜开发,终于完成了绝世代码。测试通过,性能完美,小A自信满满地打了包,扔给运维小哥。
运维小哥在CentOS服务器上郑重其事地输入命令,结果……
“Error: … not found.”
“ImportError: No module named …”
“我电脑上明明没问题啊!”小A的哀嚎响彻办公室。
问题出在哪?就出在环境二字。操作系统、依赖库、语言版本、配置文件…任何一个细微的差异,都足以让精心编写的代码“见光死”。
而Docker,就是来解决这个世纪难题的!它就像一个神奇的集装箱。你的代码、运行环境、系统工具、系统库,统统被打包进这个标准化的集装箱里。无论这个集装箱被运到哪里(开发机、测试机、生产服务器),它内部的环境都完全一致,确保你的应用在任何地方都能以相同的方式运行。
所以,学会Docker,你就等于拥有了如下超能力:
环境隔离与一致性:告别“ works on my machine ”哲学。秒级启动与轻量级:虚拟机启动以分钟计,容器启动以秒计,资源占用更是天差地别。持续集成与交付(CI/CD):自动化流水线的基石,让软件发布像流水线一样顺畅。微服务架构的基石:每个服务一个容器,完美解耦,方便扩展和管理。
今天,我们就从第一步开始,在最受开发者欢迎的Linux发行版之一——Ubuntu上,把这个“码头工人”请进你的系统!
第二章:筑基——安装前的准备工作
在开始念“安装咒语”之前,我们需要确保你的Ubuntu系统已经做好了准备。
1. 系统要求:
64位版本的Ubuntu操作系统(20.04 LTS, 22.04 LTS 等版本更佳)内核版本至少为3.10或更高(通常新安装的Ubuntu都远超这个版本)。可以通过
命令查看。
uname -r
2. 卸载旧版本(如有):
如果你之前尝试安装过老旧的
或
docker.io
,为了避免冲突,最好先清理一下。
docker-engine
sudo apt-get remove docker docker-engine docker.io containerd runc
系统提示有残留的配置文件什么的,不用管,我们的目标是新装。
3. 更新APT软件包索引:
这是标准操作,确保我们获取到的是最新的软件源信息。
sudo apt-get update
4. 安装基础依赖工具:
这些工具允许
通过HTTPS使用仓库,是安装Docker官方源的必备工具。
apt
sudo apt-get install
ca-certificates
curl
gnupg
lsb-release
准备工作完毕,接下来进入正戏!
第三章:施法——两种主流安装姿势,任君挑选
姿势一:通过官方APT源安装(推荐,便于后续管理升级)
这是Docker官方推荐的安装方式,能让你像安装其他系统软件一样,方便地通过
来管理和升级Docker。
apt-get
步骤1:添加Docker的官方GPG密钥
此密钥用于验证下载软件包的真实性,确保你下载的是正儿八经的Docker。
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
步骤2:设置稳定版仓库(Repository)
告诉你的系统,要去哪里下载Docker。
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
注:
会自动获取你当前的Ubuntu版本代号,如
$(lsb_release -cs)
(22.04)或
jammy
(20.04)。
focal
步骤3:再次更新APT源
添加了新仓库,当然要更新一下本地的软件包列表。
sudo apt-get update
步骤4:正式安装Docker Engine
激动人心的时刻!这一行命令将安装Docker引擎、命令行工具、Containerd等所有核心组件。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
姿势二:使用官方便捷脚本自动安装(懒人福音,适合快速体验)
如果你觉得上面步骤太繁琐,Docker官方提供了一个全自动的安装脚本。它会自动识别你的系统并完成所有配置。
下载并运行脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
就这么简单!脚本会自动完成所有工作。但请注意,此方式安装的版本和仓库配置可能不如方式一透明,生产环境一般推荐方式一。
第四章:验丹——验证安装并运行你的第一个容器
安装完成,不来个“Hello World”怎么对得起自己?
1. 启动Docker服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
2. 运行经典Hello-World容器
sudo docker run hello-world
如果你看到类似下面的输出,恭喜你,Docker安装成功啦!
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
3. (重要)解决烦人的
问题
sudo
默认情况下,运行
命令需要
docker
权限,非常不方便。我们需要将当前用户加入
sudo
用户组。
docker
# 创建docker用户组(通常安装时已自动创建)
sudo groupadd docker
# 将当前用户加入docker用户组
sudo usermod -aG docker $USER
# **重要**:注销并重新登录,或者重启系统,或者执行以下命令使组更改生效
newgrp docker
现在,你就可以愉快地不使用
来运行Docker命令了!
sudo
docker run hello-world
第五章:实战——一个完整的Nginx示例:从下载到访问
光跑个Hello-World不过瘾,我们来个实战的:在Docker中运行一个Nginx服务器。
1. 拉取Nginx官方镜像
这相当于去“应用商店”下载Nginx的安装包,但这个是包含了完整环境的镜像。
docker pull nginx
2. 运行Nginx容器
docker run --name my-nginx -p 8080:80 -d nginx
:给容器起个名字,方便管理。
--name my-nginx
:端口映射。将宿主机的
-p 8080:80
端口映射到容器内部的
8080
端口(Nginx默认端口)。
80
:后台运行(Detached mode)。
-d
:使用的镜像名称。
nginx
3. 验证容器运行状态
docker ps
你应该能看到一个名为
的容器正在运行。
my-nginx
4. 访问你的Nginx服务器
打开你的浏览器,访问
或
http://localhost:8080
。
http://你的服务器IP:8080
当当当当!经典的Nginx欢迎页面出现了!
5. 一些常用管理命令
# 查看容器日志
docker logs my-nginx
# 停止容器
docker stop my-nginx
# 启动已停止的容器
docker start my-nginx
# 进入容器内部(像一个SSH连接)
docker exec -it my-nginx bash
# 删除已停止的容器
docker rm my-nginx
# 删除镜像
docker rmi nginx
第六章:附录与下载地址
Docker官方文档:永远是最好、最权威的参考资料。https://docs.docker.com/Docker Hub:世界上最大的容器镜像仓库,就像GitHub for Docker images。https://hub.docker.com/Ubuntu Docker 安装官方指南:https://docs.docker.com/engine/install/ubuntu/下载地址:本文介绍的两种安装方式均通过网络直接安装,无需单独下载安装包。所有组件和镜像均通过上述命令从官方源自动获取,确保安全与最新。
结语
至此,你已经成功地在Ubuntu上安装了Docker,并完成了从“Hello World”到实际应用(Nginx)的完整旅程。这只是一个开始,Docker的世界远比这广阔,还有Dockerfile构建自定义镜像、Docker Compose编排多容器应用等更强大的功能等待你去探索。
从此,请挺直腰板,勇敢地对环境问题说“不”!祝你在这个集装箱化的世界里,玩得开心,编码愉快!