当前位置: 首页 > news >正文

Docker 入门与实践:从零开始掌握容器化技术

Docker 入门与实践:从零开始掌握容器化技术

一、Docker 概述

什么是 Docker?

Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个可移植的镜像中,发布到任何支持 Docker 的 Linux 或 Windows 机器上,实现轻量级虚拟化。容器之间完全隔离,互不干扰。

什么是沙盒机制?

沙盒(Sandbox)是一种安全技术,为运行中的程序提供隔离环境,主要包括:

  • 进程隔离
  • 权限控制
  • 资源隔离
  • 数据隔离

Docker 利用沙盒机制确保每个容器运行在独立的环境中,提升安全性和稳定性。

Docker 容器 vs 虚拟机

特性Docker 容器虚拟机
虚拟化层次应用层硬件层
启动速度秒级分钟级
资源占用
隔离性进程级系统级

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=img%2F002.jpg&pos_id=img-ek5TmYK6-17583694035

Docker 架构

Docker 分为三大部分:

  1. Docker 客户端:用户通过命令行或 API 与 Docker 交互。
  2. Docker 主机:执行 Docker 命令的核心引擎。
  3. 远程仓库:存储和分发镜像的平台,如 Docker Hub。

核心概念

  • 镜像(Image):类似于安装包,是容器的基础。
  • 容器(Container):运行中的镜像实例。

二、Docker 环境部署

1. 检查内核版本

uname -r

要求内核版本 ≥ 3.10。

2. 卸载旧版本(可选)

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

3. 安装依赖与配置源

yum install -y yum-utils
yum-config-manager --add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4. 安装指定版本 Docker

yum install --setopt=obsoletes=0 \docker-ce-20.10.8-3.el7 \docker-ce-cli-20.10.8-3.el7 \containerd.io

5. 启动并验证

systemctl start docker
systemctl enable docker
docker run hello-world

若出现网络超时,可配置镜像加速器:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、Docker 常用操作

镜像操作

命令说明
docker images查看本地镜像
docker search <镜像名>搜索镜像
docker pull <镜像名:标签>拉取镜像
docker rmi <镜像ID或名称>删除镜像

容器操作

命令说明
docker run -p 主机端口:容器端口 -d --name <名称> <镜像>创建并运行容器
docker start <容器ID或名称>启动容器
docker stop <容器ID或名称>停止容器
docker restart <容器ID或名称>重启容器
docker ps -a查看所有容器
docker rm <容器ID或名称>删除容器
docker exec -it <容器> /bin/bash进入容器内部
docker logs <容器> -f -n 10查看日志

示例:运行 Tomcat

docker pull tomcat:8.0
docker run -p 8080:8080 -d --name tomcat8 tomcat:8.0

访问 http://虚拟机IP:8080 即可看到 Tomcat 首页。


四、实战:部署 MySQL 容器

1. 拉取镜像

docker pull mysql:8.4.0-oraclelinux8

2. 创建目录并设置权限

mkdir -p /usr/local/docker/mysql/{logs,conf,data}
chmod 777 /usr/local/docker/mysql/*

3. 运行 MySQL 容器

docker run --name mm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d \-v /usr/local/docker/mysql/logs:/var/log/mysql \-v /usr/local/docker/mysql/conf:/etc/mysql \-v /usr/local/docker/mysql/data:/var/lib/mysql \mysql:8.4.0-oraclelinux8

五、自定义镜像:打包 Spring Boot 应用

1. 准备 Dockerfile

FROM openjdk:8
ADD demo-helloworld-0.0.1-SNAPSHOT-exec-99.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

2. 构建镜像

docker build -t demo .

3. 运行容器

docker run -d -p 8888:8888 --name demo01 demo

访问 http://虚拟机IP:8888 即可访问应用。


六、总结

Docker 通过容器化技术实现了应用的快速部署、隔离和迁移,极大地提升了开发与运维效率。本文介绍了 Docker 的基本概念、安装方法、常用命令以及如何自定义镜像,希望能帮助你快速上手 Docker。


如果有需要修改或者补充的地方,可以随时联系主包

http://www.dtcms.com/a/392735.html

相关文章:

  • 个人用户无公网 IP 访问群晖 NAS:神卓 N600 的安全便捷方案(附踩坑经验)
  • Cpolar内网穿透实战:从零搭建远程访问服务
  • 【Python精讲 03】Python核心容器:一篇通关序列(List, Tuple)、映射(Dict)与集合(Set)
  • map_from_arrays和map_from_entries函数
  • 【EE初阶 - 网络原理】网络基本原理
  • 计算机毕设选题+技术栈选择推荐:基于Python的家教预约管理系统设计
  • 密码实现安全:形式化验证技术解析及主流工具实践
  • 并发编程的“造物主“函数——`pthread_create`
  • Python如何开发游戏
  • 新手向 算法 插入排序-yang
  • 2.0、机器学习-数据聚类与分群分析
  • 无痛c到c++
  • QTableWidget 控件入门
  • 【HarmonyOS】HMRouter配置与基本使用
  • 数据驱动下的实验设计与方差分析:从技术落地到方法论升维
  • 深度学习中的池化、线性层与激活函数
  • 【脑电分析系列】第22篇:EEG情绪识别与脑机接口(BCI)应用案例:机器学习与深度学习的实战
  • 深度学习知识点
  • 【pdf】如何将网页转换为pdf?
  • 家庭劳务智能机器人:从“科幻设想”到“推门而入”还有多远?
  • C++后台开发工具链实战
  • PortAudio--Cross-platform Open-Source Audio I/O Library
  • Oracle根据日期进行查询
  • 【C#】C# 中 `ProcessStartInfo` 详解:启动外部进程
  • Python快速入门专业版(三十六):Python列表基础:创建、增删改查与常用方法(15+案例)
  • 微服务项目->在线oj系统(Java-Spring)----5.0
  • 【读书笔记】《鲁迅传》
  • Python 基础:列表、字符串、字典和元组一些简单八股
  • C++ 运算符重载:类内与类外重载详解
  • 【java】jsp被截断问题