文章目录
- 1 Docker入门
- 1.1 卸载旧版Docker
- 1.2 安装Docker
- 1.2.1 安装Docker的yum库
- 1.2.2 配置Docker的yum源
- 1.2.3 安装Docker
- 1.2.4 启动和校验(开机自启)
- 1.2.5 配置镜像加速
- 1.3 使用示例:部署MySQL
- 1.3.1 命令解读
- 2 Docker基础
- 2.1 常见命令
- 2.1.1 命令介绍
- 2.1.2 演示
- 2.1.3 命令别名
- 2.2 数据卷
- 2.2.1 什么是数据卷
- 2.2.2 数据卷命令
- 2.2.3 挂载本地目录活文件
- 2.3 镜像
- 2.3.1 镜像结构
- 2.3.2 Dockerfile
- 2.3.3 构建镜像
- 2.4 网络
- 3 项目部署
- 3.1 部署Java项目
- 3.2 部署前端
- 3.3 DockerCompose
- 3.3.1 基本语法
- 3.3.2 基础命令
- 一键部署
- MySQL
- Nginx
🙊 前言:本文章为瑞_系列专栏之《Docker》的整合篇。由于博主是从B站黑马程序员的《Docker》学习其相关知识,所以本系列专栏主要是针对该课程进行笔记总结和拓展,文中的部分原理及图解等也是来源于黑马提供的资料,特此注明。本文仅供大家交流、学习及研究使用,禁止用于商业用途,违者必究!
需要具备 Linux 基础知识、需安装 VMware 和 CentOS 7 64位
安装 MobaXterm 可参考:《瑞_Java所有相关环境及软件的安装和卸载》
安装 CentOS 可参考:《瑞_VMware虚拟机安装Linux纯净版(含卸载,图文超详细)》
1 Docker入门
瑞:Docker是快速构建、运行、管理应用的工具。Docker是一种轻量级的容器化平台,它允许开发者将应用程序及其依赖打包成一个可移植的容器,在任何环境中运行
《Docker》是微服务在企业落地的最后一块拼图。微服务项目由于拆分粒度细,服务部署环境复杂,部署实例很多,维护困难。而Docker则可以解决项目部署的各种环境问题,让开发、运维一体化,真正实现持续集成、持续部署。大大提高企业项目开发到部署的效率。
为什么推荐使用 Docker ?
在 Linux 上部署一个单体项目,相信大家最大的感受就是:麻烦。核心体现为三点:
- 命令太多了,记不住
- 软件安装包名字复杂,不知道去哪里找
- 安装和部署步骤复杂,容易出错
但是!如果使用 Docker 进行安装,只需要一条命令 + 回车即可,Docker 会自动实现下载、安装、配置的完整流程,直接一条龙服务,一键部署,极大提高项目部署效率。即便你对Linux不熟悉,你也能轻松部署各种常见软件、Java项目。
1.1 卸载旧版Docker
瑞:在安装前请将历史安装版本进行彻底卸载,否则很可能导致安装失败。
在 Linux 系统中执行如下指令
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
如果执行后显示“不删除任何软件包”,说明本地没有安装Docker,可以直接开始安装
瑞:博主使用的SSH客户端远程连接工具是 MobaXterm,有需要的小伙伴可以参考《瑞_Java所有相关环境及软件的安装和卸载》
1.2 安装Docker
官方安装教程(英文):https://docs.docker.com/engine/install/centos/
1.2.1 安装Docker的yum库
在 Linux 系统中执行如下指令,安装yum工具
yum install -y yum-utils
执行该命令后需要等待一段时间,看到如下图所示出现“完毕!”则表示安装yum成功
1.2.2 配置Docker的yum源
安装成功后,执行以下命令,配置Docker的yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.2.3 安装Docker
瑞:注意前面章节的yum步骤是不能跳过的
执行命令,安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
执行该命令后需要等待一段时间,看到如下图所示出现“完毕!”则表示安装Docker成功
可以执行docker -v
命令测试是否安装成功
1.2.4 启动和校验(开机自启)
# 启动Docker
systemctl start docker# 停止Docker
systemctl stop docker# 重启
systemctl restart docker# 设置开机自启
systemctl enable docker# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
启动Docker后,执行docker images
命令或者docker ps
,如果出现如下图的结果则证明Docker的安装真正成功了
瑞:建议执行
systemctl enable docker
设置开机自启
1.2.5 配置镜像加速
瑞:使用Docker安装和部署应用的时候需要下载,下载源默认是在国外比较慢,所以我们需要配置国内镜像加速,本文以阿里云镜像加速为例
1️⃣ 注册账号
在阿里云官方网站中注册一个账号:https://www.aliyun.com/
2️⃣ 开通镜像服务
在阿里云官方网站首页的产品中,找到阿里云的容器镜像服务ACR
3️⃣ 点击“管理控制台”(首次可能需要选择立刻开通,然后进入控制台)
4️⃣ 配置镜像加速,找到镜像工具下的镜像加速器
5️⃣ 将页面向下滚动,即可找到配置加速器的操作文档,选择CentOS,根据操作文档说明依次执行命令
具体命令如下
# 创建目录
mkdir -p /etc/docker# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF# 重新加载配置
systemctl daemon-reload# 重启Docker
systemctl restart docker
1.3 使用示例:部署MySQL
首先,我们利用Docker来安装一个MySQL软件,大家可以对比一下之前传统的安装方式,看看哪个效率更高一些。
如果是利用传统方式部署MySQL,大概的步骤有
- 搜索并下载MySQL安装包
- 上传至Linux环境
- 编译和配置环境
- 安装
而使用Docker安装,仅仅需要一步即可,在命令行输入下面的命令(建议采用CV大法)⬇️
docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123456 \mysql
执行命令后等待安装即可,如下图
MySQL安装完毕!通过任意客户端工具即可连接到MySQL,博主使用navicat premium 连接如下(注意密码是刚刚设置的123456)
1.3.1 命令解读
等待更新…
2 Docker基础
等待更新…
2.1 常见命令
2.1.1 命令介绍
2.1.2 演示
2.1.3 命令别名
2.2 数据卷
2.2.1 什么是数据卷
2.2.2 数据卷命令
2.2.3 挂载本地目录活文件
2.3 镜像
2.3.1 镜像结构
2.3.2 Dockerfile
2.3.3 构建镜像
2.4 网络
3 项目部署
等待更新…
3.1 部署Java项目
等待更新…
3.2 部署前端
等待更新…
3.3 DockerCompose
等待更新…
3.3.1 基本语法
3.3.2 基础命令
一键部署
--restart=always
docker run 的时候设置就会随着 docker 启动而启动
MySQL
docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123456 \-v ./mysql/data:/var/lib/mysql \-v ./mysql/conf:/etc/mysql/conf.d \-v ./mysql/init:/docker-entrypoint-initdb.d \--restart=always \--network raymysql
Nginx
docker run --name mn -p 80:80 --restart=always -d nginx
创建容器并挂载数据卷到容器内的html目录
docker run --name nginx-v html:/usr/share/nginx/html -p 80:80 --restart=always -d nginx
命令解释:
- docker run 启动一个镜像
- -d 表示后台允许
- –name nginx01 表示为当前容器起一个别名
- -p 8050:80 表示将本机的8050端口映射到nginx镜像的80端口
本文参考黑马的笔记:https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec
如果觉得这篇文章对您有所帮助的话,请动动小手点波关注💗,你的点赞👍收藏⭐️转发🔗评论📝都是对博主最好的支持~