Ubuntu 安装 Docker 超详细教程(含配置镜像加速与常见命令)

目录

一、前言

二、Docker 的安装 (Ubuntu)

1. 卸载旧版本(可选)

2. 配置 Docker 的 APT 仓库

3. 安装 Docker

4. 启动和校验

三、配置镜像加速(强烈建议!)

1. 编辑 daemon.json 配置文件

2. 重新加载配置并重启 Docker

四、Docker 常见指令

1. Docker 服务相关命令 (systemctl)

2. 镜像相关命令

3. 容器相关命令

docker run 常见参数详解:

其他容器命令:

五、总结


一、前言

Docker 已经成为现代软件开发、测试和部署的基石。它通过容器化技术,让应用及其依赖可以打包在一起,在任何环境中以一致的方式运行。对于开发者(尤其是像我们Java后端的)来说,无论是部署微服务、搭建测试环境(如 MySQL, Redis, Nacos),还是实现 CI/CD,Docker 都是必备技能。

这篇博客是我在 Ubuntu 系统上安装和使用 Docker 的个人笔记,涵盖了安装、配置和常用命令,希望能帮助大家少走弯路。

二、Docker 的安装 (Ubuntu)

我们的安装步骤将使用阿里云的镜像源,这可以大大提高安装速度。

1. 卸载旧版本(可选)

如果你的系统之前安装过旧的 Docker 版本,建议先执行卸载:

# 执行以下命令卸载可能存在的旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc 

2. 配置 Docker 的 APT 仓库

我们需要添加 Docker 官方的 GPG 密钥(用于验证软件包)并设置 APT 软件源。

# 1. 更新apt包索引并安装依赖,以允许apt通过HTTPS使用仓库 sudo apt-get update sudo apt-get install -y ca-certificates curl # 2. 添加Docker的官方GPG密钥(使用阿里云镜像加速) sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # 3. 设置Docker的APT软件源(同样使用阿里云镜像) echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 4. 更新apt包索引,建立缓存 sudo apt-get update 

3. 安装 Docker

配置好软件源后,我们就可以执行安装了:

# 执行命令,安装Docker CE(社区版)相关组件 sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

4. 启动和校验

安装完成后,启动 Docker 并设置为开机自启。

# 启动Docker sudo systemctl start docker # 设置开机自启 sudo systemctl enable docker # 校验安装启动是否成功(不报错即可) sudo docker ps 

当你看到 docker ps 命令成功输出(即使是空的列表),说明 Docker 已经安装并成功运行了。

三、配置镜像加速(强烈建议!)

在国内直接从 Docker Hub(官方库)拉取镜像(docker pull)时,速度会非常慢,甚至经常失败。因此,配置国内的镜像加速器是必须的步骤。

1. 编辑 daemon.json 配置文件

我们需要创建或编辑 /etc/docker/daemon.json 文件。这里我们使用 tee 命令直接写入内容,比 nanovim 更方便。(直接完整的复制粘贴即可)

# 使用tee命令将配置内容写入daemon.json文件 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc", "https://do.nark.eu.org", "https://dc.j8.work", "https://gst6rzl9.mirror.aliyuncs.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "http://mirrors.ustc.edu.cn/", "https://mirrors.tuna.tsinghua.edu.cn/", "http://mirrors.sohu.com/" ], "insecure-registries": [ "registry.docker-cn.com", "docker.mirrors.ustc.edu.cn" ], "debug": true, "experimental": false } EOF 
注意:上面的列表包含了非常多的镜像源。Docker 会按顺序尝试,选择最快的一个。

2. 重新加载配置并重启 Docker

修改配置后,必须重新加载并重启 Docker 服务才能生效。

sudo systemctl daemon-reload sudo systemctl restart docker 

现在,你再执行 docker pull(例如 docker pull nginx),会发现速度有了质的飞跃。

四、Docker 常见指令

以下是我日常使用中总结的常用命令。

1. Docker 服务相关命令 (systemctl)

systemctl start docker # 开启docker systemctl stop docker # 停止docker systemctl restart docker # 重启docker systemctl enable docker # 设置开机启动docker systemctl status docker # 查看docker状态 

2. 镜像相关命令

docker images # 查看本地所有镜像 docker search [镜像名] # 从Docker Hub搜索镜像 docker pull [镜像名]:[版本] # 拉取镜像(不写版本默认latest) docker rmi [镜像ID/镜像名] # 删除指定镜像 docker rmi -f $(docker images -aq) # 强制删除所有镜像 

3. 容器相关命令

这是 Docker 命令的核心,特别是 docker run

# 查看容器 docker ps # 查看正在运行的容器 docker ps -a # 查看所有容器(包括已停止的) # 运行容器 (docker run) docker run [参数] [镜像名] # 基于镜像启动一个新容器 
docker run 常见参数详解:

docker run 是最复杂的命令,掌握好参数非常重要:

  • -d: 后台运行容器(daemonize)。
  • -p [宿主机端口]:[容器端口]: 端口映射。例如 -p 8080:80,将宿主机的 8080 端口映射到容器的 80 端口。
  • -v [宿主机目录]:[容器目录]: 卷挂载。用于数据持久化,例如 -v /mydata/mysql:/var/lib/mysql
  • --name [容器名]: 为容器指定一个名称,方便管理。
  • -e [环境变量名]=[值]: 设置环境变量。例如 -e MYSQL_ROOT_PASSWORD=123456
  • --network [网络名]: 指定容器加入的网络。
  • --restart=always: 设置容器的重启策略。always 表示无论何种情况退出,都自动重启。

示例:

# 启动一个Nginx容器,命名为my-nginx,后台运行,并将宿主机的80端口映射到容器的80端口 docker run -d -p 80:80 --name my-nginx nginx 
其他容器命令:
# 启动/停止/重启 容器 docker start [容器名/ID] # 启动已停止的容器 docker stop [容器名/ID] # 停止正在运行的容器 docker restart [容器名/ID] # 重启容器 # 删除容器 docker rm [容器名/ID] # 删除已停止的容器 docker rm -f [容器名/ID] # 强制删除正在运行的容器 docker rm $(docker ps -aq) # 删除所有已停止的容器 # 查看日志 docker logs [容器名/ID] # 查看容器日志 docker logs -f [容器名/ID] # 实时查看容器日志(类似 tail -f) # 容器开机自启(针对已创建的容器) docker update --restart=always [容器名/ID] 

Read more

双剑破天门:攻防世界Web题解之独孤九剑心法(七)

双剑破天门:攻防世界Web题解之独孤九剑心法(七)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任 **本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注** 目录 一:Newscenter 二:upload1 三:Xff_referer 四:Command_execution 五:总结 1. Newscenter(SQL注入) 2. upload1(文件上传漏洞) 3. Xff_referer(HTTP头伪造) 4. Command_execution(命令注入) 一:Newscenter 打开为如下所示 经过尝试,得知在输入框中输入数字可得到不同内容 输入23就没有新闻 所以我们得知这个输入框和数据库有交互,那这题考察的可能就是SQL注入 发现将数据库中所有的内容都查询了出来,那这个题考察的就是SQL注入 字段长度为3 23' order by

By Ne0inhk

Z-Image-Turbo镜像推荐:Gradio WebUI免配置快速上手教程

Z-Image-Turbo镜像推荐:Gradio WebUI免配置快速上手教程 你是不是也遇到过这些情况:想试试最新的AI绘画模型,结果卡在环境搭建上——下载权重动辄几十GB、配置CUDA版本让人头大、改配置文件改到怀疑人生?或者好不容易跑起来了,WebUI界面又丑又难用,中文提示词还乱码?别折腾了。今天要介绍的这个镜像,真的做到了“点开即用”。 Z-Image-Turbo不是又一个参数堆砌的玩具模型,而是阿里通义实验室实打实打磨出来的高效文生图方案。它不靠堆显存换效果,而是用蒸馏技术把大模型的精华“浓缩”出来——8步出图、照片级质感、中英文文字渲染稳得一批,16GB显存的消费级显卡就能扛住。更重要的是,它被完整集成进了一个开箱即用的ZEEKLOG镜像里,连Gradio界面都给你调好了配色和字体,连“怎么输入中文”这种细节都考虑到了。 这篇文章不讲原理推导,不列参数表格,也不让你手动clone仓库、pip install一堆包。我们就用最直白的方式,带你从零开始,在5分钟内看到第一张由Z-Image-Turbo生成的高清图像。你不需要懂Diffusers,不需要会调acceler

By Ne0inhk
Gemini 无损去水印神器:基于数学算法的纯前端解决方案

Gemini 无损去水印神器:基于数学算法的纯前端解决方案

🎯 Gemini 无损去水印神器:基于数学算法的纯前端解决方案 🔗 项目地址:gemini-watermark-remover 🌐 在线体验:banana.ovo.re ⭐ 如果觉得有用,请给项目点个 Star! 📖 引言 随着 Google Gemini AI 图像生成功能的普及,越来越多的用户开始使用它来创作各种精美的图片。然而,Gemini 生成的图片右下角都会带有一个半透明的水印 Logo,这在某些场景下可能会影响图片的使用效果。 今天给大家推荐一个开源项目 gemini-watermark-remover,它能够完美无损地移除 Gemini 图片上的可见水印,而且完全在浏览器端运行,无需上传图片到服务器,充分保护用户隐私! ✨ 核心特性 🔒 100% 客户端处理,隐私至上 * 无需后端服务器:所有图片处理都在浏览器本地完成 * 零数据上传:图片永远不会离开你的设备 * 即开即用:打开网页即可使用,无需注册登录 🎯 数学精确,非 AI 模型 * 基于反向 Alpha 混合算法(

By Ne0inhk

安卓系统Chrome内核:Android System WebView

com.google.android.webview 安卓8.0可以使用Android System WebView v138 安卓7.0可以使用Android System WebView v119 安卓6.0可以使用Android System WebView v106 安卓5.0可以使用Android System WebView v95 网盘下载1:https://down666.lanzoul.com/b01hjlghc 提取码:7x8i ------旧版网盘下载1:https://down666.lanzoul.com/b01hjlgje 提取码:aw3t 网盘下载2:https://www.mediafire.com/folder/cimpgytm5w2t8 有的安卓浏览器比如“X浏览器”自身是不带Chrome内核的,

By Ne0inhk