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. 安装基础依赖工具:
这些工具允许
apt
通过HTTPS使用仓库,是安装Docker官方源的必备工具。



sudo apt-get install 
    ca-certificates 
    curl 
    gnupg 
    lsb-release

准备工作完毕,接下来进入正戏!


第三章:施法——两种主流安装姿势,任君挑选

姿势一:通过官方APT源安装(推荐,便于后续管理升级)

这是Docker官方推荐的安装方式,能让你像安装其他系统软件一样,方便地通过
apt-get
来管理和升级Docker。

步骤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

注:
$(lsb_release -cs)
会自动获取你当前的Ubuntu版本代号,如
jammy
(22.04)或
focal
(20.04)。

步骤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

现在,你就可以愉快地不使用
sudo
来运行Docker命令了!


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
端口映射到容器内部的
80
端口(Nginx默认端口)。
-d
:后台运行(Detached mode)。
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编排多容器应用等更强大的功能等待你去探索。

从此,请挺直腰板,勇敢地对环境问题说“不”!祝你在这个集装箱化的世界里,玩得开心,编码愉快!

© 版权声明

相关文章

暂无评论

none
暂无评论...