Docker(黑马spring cloud笔记)详解
什么是Docker?
Docker是一种基于容器技术的开源虚拟化平台,在不同的操作系统之间运行应用程序。通过Docker,我们可以将应用程序及其依赖项打包到一个简单的容器中,然后转移到任何地方并快速部署。
Docker的优势
- 轻量化:相对于传统虚拟化技术,Docker容器启动速度更快,占用的系统资源更少,更轻量级。
- 易于部署:Docker容器可以在任何环境中快速部署,包括本地环境、开发环境、测试环境和生产环境。
- 易于管理:使用Docker可以更高效地管理和维护应用程序,容易添加、删除和更新容器。
- 良好的可移植性:使用Docker打包的应用程序可以在不同的主机上运行,并且保证运行环境的一致性。
Docker基本概念
镜像
Docker镜像是Docker容器的基础,类似于虚拟机中的镜像。Docker镜像是一种轻量级、可移植和自包含的软件包,其中包含了将应用程序运行所需的所有文件、库、环境变量和配置等。
我们可以通过Dockerfile构建自己的镜像,也可以从Docker Hub上下载常用的镜像,例如:
$ docker pull nginx #下载nginx镜像
容器
Docker容器是用于运行应用程序的一个独立的运行环境。它是Docker镜像的一个实例,包含了运行应用程序的所有依赖关系和环境变量等。
我们可以通过镜像创建一个容器,例如:
$ docker run --name my-nginx -d nginx #在后台运行一个nginx容器
仓库
Docker仓库是用来存储、发布和管理Docker镜像的平台,可以是公共的或私有的。Docker Hub是最常用的公共仓库,在其中可以找到数十万的镜像。
我们可以在Docker Hub上搜索并下载镜像,例如:
$ docker pull ubuntu #下载Ubuntu镜像
Dockerfile
Dockerfile是用于构建Docker镜像的脚本文件,可以用来指定镜像的基础映像、添加应用程序和配置运行环境等。
例如,下面是一个使用Dockerfile构建Node.js应用程序的镜像的示例:
#使用Node.js v14作为基础映像
FROM node:14
#设置工作目录
WORKDIR /app
#将应用程序复制到镜像中
COPY . .
#安装应用程序的依赖关系
RUN npm install
#设置环境变量
ENV PORT=8080
#将容器的端口暴露到外部
EXPOSE 8080
#设置容器启动命令
CMD [ "npm", "start" ]
Docker的应用场景
- 将应用程序和依赖项打包到容器中,实现跨平台、轻量级的应用程序部署。
- 在多个环境中快速部署应用程序和服务,例如开发环境、测试环境和生产环境等。
- 实现应用程序的高可用、负载均衡和弹性扩展等功能。
示例一:在Docker中运行WordPress
- 下载并启动MySQL容器:
bash
$ docker run --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
- 下载并启动WordPress容器:
bash
$ docker run --name my-wordpress -p 8080:80 -e WORDPRESS_DB_HOST=my-mysql:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=my-secret-pw -e WORDPRESS_DB_NAME=wordpress -d wordpress
- 在浏览器中输入
http://localhost:8080
,即可访问WordPress网站。
示例二:使用Docker Compose搭建Spring Boot应用程序
- 创建一个名为
docker-compose.yml
的文件,并添加以下内容:
yml
version: '3'
services:
web:
build: .
ports:
- "8080:8080"
depends_on:
- mysql
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: testdb
MYSQL_USER: testuser
MYSQL_PASSWORD: testpwd
MYSQL_ROOT_PASSWORD: rootpwd
ports:
- "3306:3306"
- 创建一个名为
Dockerfile
的文件,并添加以下内容:
dockerfile
FROM openjdk:8
COPY ./target/demo-0.0.1-SNAPSHOT.jar /usr/app/
WORKDIR /usr/app
EXPOSE 8080
CMD ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"]
- 在命令行中进入项目根目录,并执行以下命令:
bash
$ docker-compose up -d --build
- 将会自动构建并启动Spring Boot应用程序和MySQL容器。
以上就是关于Docker的详细讲解和实战示例,希望能够帮助您更好地理解和应用Docker技术。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker(黑马spring cloud笔记)详解 - Python技术站