作者:len1111_744 | 来源:互联网 | 2024-12-13 13:58
本文介绍了Docker的基础知识,包括其作为开源应用容器引擎的特点,以及如何利用Docker将应用程序及其依赖项打包成轻量级的容器镜像。同时,还详细讲解了Docker的核心概念、安装过程及基本命令操作。
一、Docker概述
Docker是一款基于Go语言开发的开源工具,旨在实现轻量级的操作系统级别虚拟化。它允许开发者将应用及其依赖打包成一个可移植的容器镜像,这些镜像可以在任何支持Docker的环境中无缝运行,无论是物理机还是虚拟机。Docker通过容器化技术提高了应用的部署效率和环境一致性。
容器化的关键在于,它能确保应用从开发、测试到生产阶段都运行在同一环境下,避免了“在我的机器上能正常工作”的问题。此外,容器启动速度快,资源消耗低,非常适合微服务架构的应用部署。
二、Docker核心概念
在深入了解Docker之前,先来熟悉一下几个基本概念:
- Docker主机(Host):安装并运行Docker的机器,可以直接在操作系统上安装Docker。
- Docker客户端(Client):用于与Docker守护进程通信的工具,用户通过它发送命令给Docker主机。
- Docker仓库(Registry):存储和分发Docker镜像的服务,最著名的公共仓库是Docker Hub。
- Docker镜像(Images):包含运行应用所需的所有文件和依赖的只读模板,可以被推送到Docker仓库中供他人使用。
- Docker容器(Container):由镜像创建的运行实例,每个容器都是隔离的,互不影响,且能够快速启动和停止。
使用Docker的基本流程如下:
- 安装Docker软件。
- 从Docker仓库下载所需的镜像。
- 基于该镜像启动一个或多个容器。
- 通过控制容器的生命周期(如启动、停止等)来管理应用的运行状态。
三、Docker的安装
1. 准备Linux环境
为了体验Docker的强大功能,首先需要搭建一个Linux环境。推荐使用VMware或VirtualBox等虚拟化软件来创建一个CentOS 7的虚拟机。
- 下载并安装VMware或VirtualBox。
- 导入预先准备的CentOS 7虚拟机文件(例如:centos7-atguigu.ova)。
- 启动虚拟机,并以root用户登录,密码为123456。
- 使用SSH客户端(如PuTTY)连接至Linux服务器,以便于执行后续命令。
- 配置虚拟机网络模式为桥接,确保虚拟机能访问互联网。
- 重启网络服务,使新的网络配置生效:
sudo service network restart
。 - 查看虚拟机IP地址:
ip addr show
。
2. 在Linux上安装Docker
安装Docker的具体步骤如下:
- 检查Linux内核版本,确保不低于3.10:
uname -r
。 - 更新系统包并安装Docker:
sudo yum update && sudo yum install -y docker
。 - 启动Docker服务:
sudo systemctl start docker
。 - 验证Docker是否安装成功:
docker -v
。 - 设置Docker随系统启动:
sudo systemctl enable docker
。 - 若需临时停止Docker服务,可执行:
sudo systemctl stop docker
。
四、Docker基本命令操作
1. 镜像操作
Docker提供了丰富的命令来管理镜像,包括搜索、下载、列出和删除等。
操作 | 命令 | 描述 |
---|
搜索镜像 | docker search 关键词 | 在Docker Hub上查找相关镜像,如:docker search nginx 。 |
下载镜像 | docker pull 镜像名[:tag] | 从Docker仓库下载指定镜像,默认tag为latest,例如:docker pull ubuntu:18.04 。 |
列出镜像 | docker images | 显示本地所有镜像的列表。 |
删除镜像 | docker rmi 镜像ID | 移除不再需要的本地镜像。 |
更多关于Docker Hub的信息,请访问:Docker Hub官网。
2. 容器操作
容器是Docker的核心,以下是常用的容器操作命令:
- 搜索并下载Tomcat镜像:
docker search tomcat
和 docker pull tomcat
。 - 启动一个Tomcat容器:
docker run --name mytomcat -d tomcat:latest
。 - 查看当前运行的容器:
docker ps
。 - 停止运行中的容器:
docker stop 容器ID
。 - 查看所有容器(包括已停止的):
docker ps -a
。 - 重启容器:
docker start 容器ID
。 - 删除容器:
docker rm 容器ID
。 - 启动带有端口映射的Tomcat容器:
docker run -d -p 8888:8080 tomcat
,其中-d
表示后台运行,-p
用于指定端口映射。 - 关闭Linux防火墙(仅用于测试):
sudo service firewalld stop
。 - 查看容器日志:
docker logs 容器名/容器ID
。
更多命令详情请参考:Docker官方文档。
3. MySQL容器示例
下面通过一个具体的例子来展示如何使用Docker运行MySQL数据库:
- 下载MySQL镜像:
docker pull mysql
。 - 尝试启动MySQL容器(错误示范):
docker run --name mysql01 -d mysql
,这将导致容器因未设置必要参数而立即退出。 - 查看容器退出原因:
docker logs mysql01
,提示需要设置MySQL的根用户密码。 - 正确启动MySQL容器:
docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
。 - 启动带端口映射的MySQL容器:
docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
。 - 高级操作示例:
docker run --name mysql03 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
,这里将主机的/conf/mysql
目录挂载到了容器内的/etc/mysql/conf.d
,便于修改MySQL配置文件。