Appearance
Docker基础知识与镜像配置教程
一、Docker概述
Docker是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以在Windows上运行。
1.1 Docker核心概念
概念
解释
镜像(Image)
一个只读的模板,用于创建Docker容器
容器(Container)
镜像的运行实例,包含应用程序和其运行环境
仓库(Registry)
存储和分发Docker镜像的服务,如Docker Hub
Dockerfile
用于构建Docker镜像的文本文件,包含一系列命令
Docker Compose
用于定义和运行多容器Docker应用程序的工具
1.2 Docker的优势
轻量级:容器共享宿主操作系统内核,比虚拟机更轻量级
可移植性:一次构建,到处运行
隔离性:容器之间相互隔离,避免冲突
高效性:启动时间秒级,资源利用率高
版本控制:镜像支持版本管理
二、Docker安装(Windows/macOS/Linux)
2.1 Windows安装
下载Docker Desktop for Windows:https://www.docker.com/products/docker-desktop
运行安装程序,按照提示完成安装
安装完成后重启电脑
打开Docker Desktop,等待启动完成
验证安装:在命令行输入
docker --version
2.2 macOS安装
下载Docker Desktop for macOS:https://www.docker.com/products/docker-desktop
双击.dmg文件,将Docker图标拖到Applications文件夹
打开Docker应用程序,等待启动完成
验证安装:在终端输入
docker --version
2.3 Linux安装(Ubuntu)
(注意:旧版使用 apt-key 的方式已弃用,以下为最新官方推荐方式)
sql
# 更新包列表及安装必要依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# 添加Docker官方的GPG密钥并放入keyrings目录
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 设置稳定版仓库源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker Engine和相关插件(包括Compose)
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
sudo docker run hello-world **💡 快捷安装提示:**
详细快捷安装脚本可参考网页:https://wzfou.com/question/101224/
三、Docker基本命令
3.1 镜像相关命令
bash
# 拉取镜像
docker pull [镜像名:标签]
# 列出本地镜像
docker images
# 删除镜像
docker rmi [镜像ID/镜像名:标签]
# 构建镜像
docker build -t [镜像名:标签] .
# 推送镜像到仓库
docker push [镜像名:标签]3.2 容器相关命令
bash
# 运行容器
docker run [选项] [镜像名:标签] [命令]
# 列出运行中的容器
docker ps
# 列出所有容器
docker ps -a
# 停止容器
docker stop [容器ID/容器名]
# 启动容器
docker start [容器ID/容器名]
# 进入容器
docker exec -it [容器ID/容器名] /bin/bash
# 删除容器
docker rm [容器ID/容器名]
# 查看容器日志
docker logs [容器ID/容器名]3.3 常用选项说明
-d:后台运行容器
-p:端口映射(宿主端口:容器端口)
-v:挂载数据卷(宿主路径:容器路径)
--name:指定容器名称
--restart=always:容器开机自启
四、配置kspeeder.istoreos.com镜像
4.1 镜像加速器介绍
由于网络原因,直接从Docker Hub拉取镜像可能会比较慢。使用国内的镜像加速器可以提高镜像拉取速度。kspeeder.istoreos.com是一个常用的Docker镜像加速器。
4.2 配置步骤
1
**打开Docker配置文件**
根据操作系统的不同,Docker的配置文件位置有所不同:
Windows/macOS:通过Docker Desktop图形界面配置
Linux:配置文件位于
/etc/docker/daemon.json(如果不存在则创建)2 **Windows/macOS配置方法**打开Docker Desktop应用程序
点击右上角的齿轮图标(设置)
选择"Docker Engine"选项卡
在配置JSON中添加或修改"registry-mirrors"字段:
{
"registry-mirrors": ["https://kspeeder.istoreos.com/"]
}点击"Apply & Restart"按钮重启Docker
3 **Linux配置方法**
bash
# 创建或编辑daemon.json文件
sudo vi /etc/docker/daemon.json
# 添加以下内容
{
"registry-mirrors": ["https://kspeeder.istoreos.com/"]
}
# 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker 4
**验证配置是否成功**
bash
docker info在输出信息中查找"Registry Mirrors",如果看到 https://kspeeder.istoreos.com/ ,则配置成功。
4.3 其他可用镜像加速器
阿里云:https://.mirror.aliyuncs.com(需注册获取)
网易云:https://hub-mirror.c.163.com/
华为云:https://.mirror.swr.myhuaweicloud.com(需注册获取)
五、Docker使用示例
5.1 运行一个Nginx容器
bash
# 拉取Nginx镜像
docker pull nginx
# 运行Nginx容器,映射端口80
docker run -d -p 8080:80 --name mynginx nginx
# 访问Nginx服务
# 在浏览器中输入 http://localhost:80805.2 运行一个MySQL容器
bash
# 运行MySQL容器,设置根密码
docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 进入MySQL容器
docker exec -it mymysql mysql -uroot -p
# 连接MySQL服务
# 使用MySQL客户端连接 localhost:3306六、Docker Compose
Docker Compose是用于定义和运行多容器Docker应用程序的工具。目前的最新方案是使用Compose V2,它直接作为Docker CLI的一个插件安装,对应的命令从以前带中划线的 docker-compose 升级为了 docker compose 。
6.1 验证安装
如果使用的是Docker Desktop,或者你在Linux安装时执行了 apt-get install docker-compose-plugin ,它就已经内置好了,你可以直接验证:
bash
# 验证安装
docker compose version6.2 使用示例:WordPress应用
推荐创建一个名为 compose.yaml (或 docker-compose.yml )的文件:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data:启动应用:
bash
docker compose up -d七、常见问题与解决方案
**问题1:Docker命令需要sudo权限**
解决方案:将当前用户加入docker组
bash
sudo usermod -aG docker $USER
newgrp docker **问题2:镜像拉取速度慢**
解决方案:配置国内镜像加速器,如本文中介绍的kspeeder.istoreos.com
**问题3:容器无法访问外部网络**
解决方案:检查Docker网络配置,或重启Docker服务
总结
本文介绍了Docker的基本概念、安装方法、常用命令,以及如何配置kspeeder.istoreos.com镜像加速器。通过Docker,开发者可以更高效地构建、测试和部署应用程序。
配置镜像加速器可以显著提高镜像拉取速度,推荐在实际使用中配置。