🏡 博客首页:派 大 星
⛳️ 欢迎关注 ❤️ 点赞 🎒 收藏 ✏️ 留言
🎢 本文由派大星原创编撰
🚧 系列专栏:Docker—云原生
🎈 本系列记录容器化技术的初次探险与深入思考历程,如有描述有误的地方还望诸佬不吝赐教
文章目录
🍒 Docker 是什么
Docker是基于Linux内核实现的, Docker最早采用了LXC技术, LXC是Linux原生支持的容器技术, 可以提供轻量级的虚拟化. Docker基于LXC发展, 提供了LXC的高级封装, 标准的配置方法, 在LXC的基础上, Docker提供了一系列更强大的功能. 而虚拟化技术, 比如KVM, 是基于模块实现, 后来Docker改为自己研发并开源的runc技术运行容器
🥕 Docker的优点
- 快速部署: 短时间内可以部署成百上千个应用, 更快速交付到线上
- 高效虚拟化: 不需要为
hypervisor
支持, 基于Linux
内核实现应用虚拟机, 相比虚拟机大幅提高性能和效率 - 节省开支: 提供服务器利用率, 降低IT支持
- 简化配置: 将运行环境打包保存至容器, 使用时直接启动即可
- 环境统一: 将开发, 测试, 生成的应用运行环境进行标准化和统一, 减少环境不一样带来的各种问题
🍠 Docker 的缺点
- 隔离性: 多个容器共用宿主机的内核, 各应用之间的隔离不如虚拟机彻底
Docker的基本组成
- Docker主机(Host): 一个物理机或虚拟机, 用于运行
Docker
服务进程和容器, 也成为宿主机,node
节点 - Docker服务器端(Server):
Docker
守护进程, 运行Docker容器 - Docker客户端(Client): 客户端使用
docker
命令或其他工具调用docker API
- Docker仓库(Registry): 保存镜像的仓库, 官方仓库
:hub.docker.com
, 可以搭建私有仓库harbor
- Docker镜像(Images): 镜像可以理解为创建实例使用的模本, 相当于
RPM
或者DEB
包,通过这个镜像可以创建多个容器(最终服务运行的) - Docker容器(Container): 容器是从镜像生成对外提供服务的一个或一组服务, 相当于
RPM
包中的程序运行起来,可以将容器理解为就是一个简易的Linux
系统
🥝 Docker的安装并使用
首选,在学会安装Docker之前,我们要先学会如何卸载Docker,以防虚拟机中存在旧版的Docker,使得安装过程中一些不必要的问题出现
① 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
② Docker 的安装步骤
下载需要依赖的安装包
yum install -y yum-utils
设置安装Docker的镜像仓库,系统默认是国外镜像,也同样可以选择国内比较优秀的阿里云镜像(推荐)
# 默认是国外镜像
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #(不推荐)
#阿里云镜像
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推荐
安装Docker相关的引擎
yum install docker-ce docker-ce-cli containerd.io
安装完成之后就可以启动Docker后使用命令来查看是否安装成功
# 启动Docker
systemctl start docker
# 判断是否安装成功
docker version
🍇 新建并启动容器(RabbitMQ)
拉取RabbitMQ镜像
docker pull rabbitmq
创建并运行RabbitMQ
docker run -d -p 15672:15672 -p 5672:5672 \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--hostname myRabbit \
--name rabbitmq \
rabbitmq
命令介绍:
-d
:表示在后台运行容器-p
:将容器的端口5672(应用访问端口)
和15672(控制台Web端口号)
映射到主机中-e
:指定环境变量RABBITMQ_DEFAULT_VHOST
:默认虚拟机名;RABBITMQ_DEFAULT_USER
:默认的用户名;RABBITMQ_DEFAULT_PASS
:默认的用户密码;
--hostname
:指定主机名(RabbitMQ的一个重要注意事项是它根据所谓的节点名称
存储数据,默认为主机名)--name rabbitmq
:设置容器名称rabbitmq
:容器使用镜像名称
查看容器启动状况
docker ps
设置Docker启动时自动启动RabbitMQ
docker update rabbitmq --restart=always
启动
rabbitmq_management
可视化插件
方法一:
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
方法二:
docker exec -it rabbitmq /bin/bash
---------------------------------
user@7b295c46c99d /: rabbitmq-plugins enable rabbitmq_management
访问RabbitMQ后台管理可视化界面
http://ip:15672
,初次登陆默认的用户名和密码都是guest
在访问之前需要开启防火墙并将端口暴露以供访问
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload