共计 3024 个字符,预计需要花费 8 分钟才能阅读完成。
前言
Docker 是一种容器化技术,简化软件的部署和管理。文章详细解释了 Docker 的架构、安装步骤和常用命令,帮助用户快速启动和管理容器。还介绍了 Docker 镜像命令和数据卷挂载的实例,增强对持久化存储的理解,并涵盖了 Nginx 的安装方法,支持 Web 应用的使用
Docker 概述
什么是 docker
- Docker 是一个应用打包、分发、部署的容器
- 诞生于 2013 年,基于 Go 语言实现
- Docker 可以让开发者打包他们的应用以及依赖包到一个 轻量级、可移植的容器 中,然后发布到任何流行的 Linux 机器上
- 容器是完全使用沙箱机制,相互隔离
- 容器性能开销极低
- 你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而 普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件
Linux 软件安装
以前通过 yum 命令安装软件, 是直接把软件安装到 Linux 系统中, 安装和卸载都比较麻烦, 因为软件和系统是强关联
Docker 是一种容器技术, 可以将我们 应用和依赖进行打包, 制作出一个镜像(软件安装包及相关依赖), 可以在 Linux,Windows 中的 docker 中运行
Docker 采用沙箱隔离机制, 部署运行软件之间相互隔离, 与操作系统也是隔离的
Docker 架构
Docker 实际也是一个小型的虚拟机, 一个部署在 Linux 虚拟机中的管理安装删除等应用管理的一个虚拟机架构.
- 打包: 就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
- 分发: 你可以把你打包好的 ” 安装包 ” 上传到一个镜像仓库,其他人可以非常方便的获取和安装
- 部署: 拿着 ” 安装包 ” 就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux
Docker 安装
安装 yum-utils, 配置镜像源需要使用
yum install -y yum-utils
设置更新 docker 镜像源
yum-config-manager
–add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
测试 docker 版本
docker -v
启动常用命令
docker 安装成功后并没有启动
启动命令 systemctl start docker
关闭命令 systemctl stop docker
设置开机自动启动 systemctl enable docker
Docker 配置
在 etc 下创建 docker 目录
mkdir -p /etc/docker
进入 docker 目录
cd /etc/docker
创建 daemon.json 文件
touch daemon.json
修改文件
vim daemon.json
{“registry-mirrors”: [“https://dockerhub.icu“]
}
注: 修改文件操作为更换docker 的镜像下载地址
重载配置
systemctl daemon-reload
重启
systemctl restart docker
Docker 镜像命令
Docker 镜像命令, 就是对镜像文件操作的命令
docker pull 镜像名 从远程仓库拉去镜像文件
docker images 查看本地镜像
docker rmi 镜像名 删除镜像
docker load -i 镜像文件 加载本地镜像
docker build 从 dockerfile 构建镜像
docker save 保存镜像到本地, 生成 tar 文件
docker push 推送镜像到服务器
Docker 容器命令
docker run 镜像名 创建一个新的容器
docker ps -a 查看容器
docker start 容器名 启动容器
docker stop 容器名 停止容器
docker rm 容器名 删除容器
docker logs 容器名 查看容器日志
注意: 删除容器, 需要停止运行后, 再吧容器删除, 然后删除镜像
Docker 安装镜像(例 mysql)
安装常见参数(docker run 命令的常见参数)
- –name:指定容器名称
- –restart=always 自动启动
- –privileged=true 拥有特权
- -p:指定端口映射
- -d:让容器后台运行
下载镜像
docker pull mysql:8.0
安装
docker run -d -p 3306:3306
–name mysql
–restart=always
–privileged=true
-e TZ=Asia/Shanghai
-e MYSQL_ROOT_PASSWORD=root
mysql:8.0
进入容器
docker exec -it 容器名 / 容器 id bash
注: 我们登录 mysql 前需要注意我们的 mysql 密码有没有加密
修改 root 账号加密方式(以下演示的为作者的加密规则)
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘root’;
登录 mysql
mysql -uroot -proot
解释代码:
-u 后面跟随的为账号
-p 后面跟随的为账号密码
退出
exit
数据卷挂载
由于容器内的目录操作起来不太方便, 例如 mysql 数据目录,toncat 项目部署目录, 所以可以在 Linux(宿主机)中创建一个目录, 在运行镜像时,把宿主机中的目录和容器内目录建立映射关系,后期运行产生数据, 就可以存储在宿主机中的映射目录中宿主机中的目录称为数据卷.
例:mysql 数据挂载实现
创建 mysql 数据卷
mkdir -p /opt/mysql/data
安装
docker run -d -p 3306:3306
--name mysql
--restart=always
--privileged=true
-e TZ=Asia/Shanghai
-e MYSQL_ROOT_PASSWORD=root
-v /opt/mysql/data:/var/lib/mysql
mysql:8.0
Nginx
- Nginx 是一款是由俄罗斯的程序设计师所开发高性能的 Web 服务器 **(只能运行前端项目, 不能运行 java 项目)**。
- 其特点是占有 内存少 , 并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等等。
- Nginx 专为性能优化而开发,性能是服务器最重要的考量,实现上非常 注重效率,能经受高负载的考验,据报告能支持高达 50,000 个并发连接数
安装 Nginx
拉去镜像
docker pull nginx:1.24
创建数据卷
mkdir -p /opt/nginx/html
安装
docker run -d -p 80:80
--name nginx
--restart=always
--privileged=true
-v /opt/nginx/html:/usr/share/nginx/html
nginx:1.24
感谢大家的观看,本次分享就到这里。希望我的内容能够对您有所帮助。创作不易,欢迎大家多多支持,您的每一个点赞都是我持续更新的最大动力!如有不同意见,欢迎在评论区积极讨论,让我们一起学习、共同进步!如果有相关问题,也可以私信我,我会认真查看每一条留言。期待下次再见!
希望路飞的笑容可以治愈努力路途中的你我!
博主 vx:Dreamkid05 —>欢迎大家和博主讨论问题
文章来源: Docker 安装 ▎Docker 详细讲解 ▎数据卷挂载 ▎Nginx 安装理解