Docker快速入门
1 基本信息
1.1 基础概览
(1)容器与镜像
容器:轻量级的独立运行时环境,基于Linux的命名空间(namespace)和控制组(cgroup)技术实现资源隔离。容器通过镜像创建,每个容器拥有独立的文件系统、网络和进程空间
镜像:不可变的模板文件,包含应用程序及其依赖项的分层结构,通过联合文件系统(UnionFS)实现多层叠加,最终形成容器可读写的顶层
镜像仓库:如Docker Hub,用于存储和分发镜像,支持公共和私有仓库
(2)容器与虚拟机的区别
虚拟机:需完整操作系统和Hypervisor层,资源占用高、启动慢
Docker容器:共享宿主机内核,无需独立操作系统,轻量且启动快(秒级)
1.2 资源隔离
cpu、memory资源隔离与限制
访问设备隔离与限制
网络隔离与限制
用户、用户组隔离限制
1.3 架构
2 环境安装
2.1 Docker安装
(1)下载依赖组件
yum install -y yum-utils device-mapper-persistent-data lvm2
注意:本地安装出现错误(我本地安装出现的错误)
Could not resolve host: mirrorlist.centos.org; 未知的错误
问题原因:CentOS 7官方已经停止支持了。
问题是mirrorlist.CentOS.org 这个链接,因为CentOS 7 于 2024-06-30 停止支持后不再存在。所以这个域名自然就找不到。
解决:参考这个网址 https://www.xiaomawang.cn/help/201448.html
打开/etc/yum.repos.d/centos.repo文件,然后注释掉 mirrorlist 行
(2)设置docker镜像源(阿里仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3)安装Docker服务
yum install docker-ce
(4)安装成功后,启动docker并设置成开机自启动
systemctl start docker #启动docker
systemctl enable docker #docker开机自启动
(5)查看版本信息
docker --version
2.2 Docker-Compose安装(容器编排)
(1)下载 docker-compose-linux-x86_64
(自己手动去官方github下载,上传到服务器)
官方地址:https://github.com/docker/compose/releases
(2)赋可执行权限,并移动到/usr/bin目录下
chmod a+x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
(3)查看版本信息
docker-compose version
3 常用命令
(1)docker images :查看所有镜像
(2)docker ps :查看正在运行的容器
(3)docker rm 容器id/名字 :删除停止的容器
(4)docker stop 容器id/名字:停止容器
(5)docker start 容器id/名字 :再次启动
(6)docker update 容器id/名字 --restart=always :应用开机自启
(7)docker exec -it 容器id /bin/bash :进入容器内部的系统,修改容器内容
退出容器内部:exit
其他使用到的后续慢慢补充...
4 部署中间件(使用docker-compose)
说明:/usr/local/docker -- 全部指定安装到这个路径下
4.1 安装MySQL
(1)创建文件夹
mkdir mysql_docker
cd mysql_docker
(2)编写docker-compose.yml文件
vi docker-compose.yml
version: '3.1' services: mysql:image: mysql:5.7.24container_name: mysqlports:- "3306:3306"environment:- MYSQL_ROOT_PASSWORD=rootvolumes:- ./data/:/var/lib/mysql/
(3)docker-compose执行
docker-compose up -d
说明==> 出现问题:拉取镜像失败(我本地出现的问题)
解决:https://www.cnblogs.com/smallfa/p/18565334
(4)查看执行日志
docker-compose logs -f mysql
-------------------------------------------------------------------------------------------------------------------------
docker安装MySQL默认root用户是允许远程连接的
如果无法正常连接,需要看两种情况
虚拟机:关闭防火墙
云服务器:不需要关闭防火墙,安全组开放端口
4.2 安装Nacos
Nacos默认启动是集群模式,这里用单机模式
(1)创建文件夹
mkdir nacos_docker
cd nacos_docker
(2)编写docker-compose.yml文件
vi docker-compose.yml
version: '3.1' services: nacos:image: nacos/nacos-server:v2.1.1container_name: nacosports:- 8848:8848environment:- MODE=standalone
(3)执行
docker-compose up -d
(4)查看启动日志
docker logs -f nacos
4.3 安装Redis
Redis的6379端口,经常会被作为挖矿的入口,Redis一定要设置连接密码,而且不要太简单
(1)创建文件夹
mkdir redis_docker
cd redis_docker
(2)为了设置密码,需要先准备一个redis的配置文件
mkdir data
cd data
vi redis.confrequirepass Redis123!
(3)编写docker-compose.yml文件
vi docker-compose.yml
version: '3.1' services: redis:image: redis:5.0.9container_name: redisports:- 6379:6379volumes:- ./data/:/data/command: ["redis-server","redis.conf"]
(4)执行
docker-compose up -d
(5)查看启动日志
docker logs -f redis
4.4 安装RabbitMQ
(1)创建文件夹
mkdir rabbitmq_docker
cd rabbitmq_docker
(2)编写docker-compose.yml文件
vi docker-compose.yml
version: '3.1' services: rabbitmq:image: rabbitmq:3.8.3-managementcontainer_name: rabbitmqports:- 5672:5672- 15672:15672environment:- RABBITMQ_DEFAULT_USER=root- RABBITMQ_DEFAULT_PASS=root
(3)执行
docker-compose up -d
(4)查看启动日志
docker logs -f rabbitmq
4.5 安装minio
(1)创建文件夹
mkdir minio_docker
cd minio_docker
(2)编写docker-compose.yml文件
vi docker-compose.yml
version: '3.1' services:minio:image: minio/minio:latestcontainer_name: miniocommand: server /data --console-address ":9001"environment:MINIO_ROOT_USER: miniopandy # 默认管理员账号MINIO_ROOT_PASSWORD: miniopandy123 # 默认密码需修改volumes:- /data:/data- /config:/root/.minioports:- "9000:9000" # API 端口- "9001:9001" # 控制台端口restart: always
(3)执行
docker-compose up -d
(4)查看启动日志
docker logs -f minio