欢迎光临
我们一直在努力

Docker零基础入门教程:从安装到实战,一篇就够了!

Docker零基础入门教程:从安装到实战,一篇就够了!

大家好,今天带大家零基础入门Docker,手把手教你安装、配置、使用Docker,让应用部署变得像安装App一样简单!


一、Docker是什么?为什么要学它?

1.1 传统部署的痛点

想象一下这个场景:你写了一个很棒的Java Web应用,想部署到服务器上。于是你开始了漫长的“配环境”之旅:

  • 安装JDK,配置环境变量
  • 安装MySQL,设置用户名密码
  • 安装Redis,修改配置文件
  • 安装Nginx,配置反向代理
  • 各种依赖包、版本兼容性问题…

更崩溃的是,换一台服务器,同样的过程再来一遍!这就是经典的“在我电脑上能运行啊”问题。

1.2 Docker的解决方案

Docker就像一个“集装箱”,把你的应用和它需要的所有环境(系统库、运行时、依赖包)打包在一起。无论这个集装箱被运到哪里(任何Linux机器),都能保证应用以完全相同的方式运行。

核心概念三件套:

  • 镜像(Image):只读模板,包含运行应用的所有文件,相当于“安装包”
  • 容器(Container):镜像的运行实例,相当于“运行中的应用”
  • 仓库(Repository):存放镜像的地方,类似GitHub,但有官方的Docker Hub

一句话总结:Docker让你把应用和环境一起打包,从此告别“环境不一致”的烦恼!


二、Docker安装(以CentOS 7为例)

2.1 环境准备

# 查看系统内核版本(要求3.10以上)
uname -r

# 使用root用户操作
sudo -i

# 更新yum包
yum update -y

2.2 安装Docker

# 1. 安装必要的依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

# 2. 设置Docker仓库(使用阿里云镜像加速)
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 3. 安装Docker引擎
yum install -y docker-ce docker-ce-cli containerd.io

# 4. 启动Docker
systemctl start docker

# 5. 设置开机自启
systemctl enable docker

# 6. 验证安装
docker version
# 看到Client和Server两部分信息,说明安装成功!

2.3 配置镜像加速(国内用户必做)

# 创建配置文件
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://你的加速器地址.mirror.aliyuncs.com"]
}
EOF

# 重启Docker
systemctl daemon-reload
systemctl restart docker

💡 阿里云镜像加速器地址获取:登录阿里云→容器镜像服务→镜像加速器,每个用户有独立地址


三、Docker核心命令实战

3.1 镜像操作(像管理App安装包)

# 查看本地已有镜像
docker images

# 搜索镜像(以Redis为例)
docker search redis

# 拉取镜像(下载安装包)
docker pull redis # 默认最新版
docker pull redis:6.0 # 指定版本

# 删除镜像
docker rmi redis
docker rmi 镜像ID # 可用docker images查看ID

3.2 容器操作(像运行App)

# 运行一个Nginx容器(最简方式)
docker run -d –name my-nginx -p 8080:80 nginx

# 解释:
# -d:后台运行
# –name:容器命名
# -p 8080:80:宿主机8080端口映射容器80端口
# nginx:使用的镜像

# 查看运行中的容器
docker ps

# 查看所有容器(包括已停止)
docker ps -a

# 停止容器
docker stop my-nginx

# 启动已停止的容器
docker start my-nginx

# 重启容器
docker restart my-nginx

# 删除容器(需先停止)
docker rm my-nginx
docker rm -f my-nginx # 强制删除运行中的容器

3.3 实战:部署一个完整的Web应用

场景:部署一个Spring Boot应用 + MySQL + Redis

# 1. 先运行MySQL容器
docker run -d \\
–name mysql-dev \\
-p 3306:3306 \\
-e MYSQL_ROOT_PASSWORD=root123 \\
-e MYSQL_DATABASE=testdb \\
-v /data/mysql:/var/lib/mysql \\
mysql:5.7

# 2. 再运行Redis容器
docker run -d \\
–name redis-dev \\
-p 6379:6379 \\
-v /data/redis/data:/data \\
redis \\
redis-server –appendonly yes

# 3. 最后运行你的Spring Boot应用
docker run -d \\
–name myapp \\
-p 8080:8080 \\
–link mysql-dev:mysql \\
–link redis-dev:redis \\
-e SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/testdb \\
-e SPRING_REDIS_HOST=redis \\
your-springboot-image

💡 –link参数可以在容器间建立连接,新版本推荐使用自定义网络,初学者先用link理解概念


四、常用操作进阶

4.1 进入容器内部(调试必备)

# 查看容器ID/名称
docker ps

# 进入容器(交互模式)
docker exec -it 容器ID/名称 /bin/bash
# 或 sh(如果容器没有bash)
docker exec -it 容器ID/名称 sh

# 在容器内执行命令(不进入)
docker exec 容器ID ls -la

# 退出容器
exit

4.2 文件拷贝(宿主机 ↔ 容器)

# 从宿主机拷贝文件到容器
docker cp /home/app.jar 容器ID:/app/app.jar

# 从容器拷贝文件到宿主机
docker cp 容器ID:/app/logs/app.log /home/logs/

4.3 查看日志和资源占用

# 查看容器日志
docker logs 容器ID
docker logs -f 容器ID # 实时跟踪(类似tail -f)

# 查看容器资源占用
docker stats

# 查看容器详细信息
docker inspect 容器ID


五、数据持久化(容器删了数据不丢)

5.1 数据卷(Volume)方式

# 创建数据卷
docker volume create mydata

# 运行容器时挂载数据卷
docker run -d \\
–name mysql-data \\
-v mydata:/var/lib/mysql \\
mysql

# 即使容器删除,数据还在数据卷中

5.2 目录挂载(最常用)

# 将宿主机的/data/mysql目录挂载到容器的/var/lib/mysql
docker run -d \\
–name mysql-local \\
-v /data/mysql:/var/lib/mysql \\
mysql


六、网络设置(容器间通信)

6.1 端口映射(外网访问)

# 格式:-p 宿主机端口:容器端口
docker run -d -p 8080:80 nginx
# 访问 http://宿主机IP:8080 即可访问nginx

6.2 自定义网络(推荐容器间通信)

# 创建网络
docker network create my-network

# 在同一个网络中运行容器
docker run -d –name app1 –network my-network nginx
docker run -d –name app2 –network my-network redis

# 现在app1可以直接用容器名app2访问redis
# 例如在app1中 ping app2


七、实用技巧与避坑指南

7.1 容器自启动

# 创建容器时设置
docker run -d –restart=always –name myapp nginx

# 更新已有容器
docker update –restart=always 容器ID

7.2 清理磁盘空间

# 一键清理:停止的容器、无用网络、悬空镜像、构建缓存
docker system prune -a

# 只清理停止的容器
docker container prune

# 只清理无用镜像
docker image prune

7.3 常见问题

Q: 容器启动后立即退出怎么办?
A: 查看日志 docker logs 容器ID,通常是前台进程没有保持运行。容器必须有一个前台进程才能持续运行。

Q: 端口被占用怎么办?
A: 换一个宿主机端口,或者先停止占用端口的程序。

Q: 如何修改容器配置?
A: 容器是临时的,建议删除重建。如需持久化数据,使用数据卷。


八、总结与进阶方向

恭喜你!现在你已经掌握了Docker的核心用法,可以:

  • ✅ 安装和配置Docker
  • ✅ 拉取和运行镜像
  • ✅ 管理容器生命周期
  • ✅ 实现数据持久化
  • ✅ 配置容器网络
  • ✅ 部署多容器应用

下一步学习建议:

  • Dockerfile:学习如何制作自己的镜像
  • Docker Compose:用YAML文件定义和运行多容器应用
  • Kubernetes:容器编排,管理大规模容器集群

  • 如果这篇文章对你有帮助,欢迎点赞、收藏、关注!有问题可以在评论区留言,我会尽快回复!


    参考资料:

    • Docker官方文档:https://docs.docker.com
    • Docker Hub:https://hub.docker.com

    教程特点说明:

  • 零基础友好:从为什么需要Docker讲起,概念用生活化比喻
  • 实战导向:每个知识点都配有可直接运行的命令
  • 结构清晰:由浅入深,循序渐进
  • 避坑指南:总结常见问题和解决方案
  • 扩展指引:学完基础后给出进阶方向
  • 赞(0)
    未经允许不得转载:171主机测评 » Docker零基础入门教程:从安装到实战,一篇就够了!
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址