U p d . 25.2.25 Upd.25.2.25 Upd.25.2.25
何为Docker
一个程序在开发者电脑上能运行,但在别的设备上可能跑不起来。因此采用以下方式把环境打包:
1.虚拟机:打包了整个操作系统发给别人。(相当于我只需吃饭,你打包了栋房子过来)
2.容器(image):抽取整个系统中,软件所需的部分打包。相当于精简的虚拟机。(只虚拟软件所需运行环境,最大化减少没用的配置)
镜像:一个静态模具。(镜像运行起来就是容器,多个容器可共享一个镜像。)
Docker是什么?
一套工具,用于生成、管理容器(image)。
一、安装Docker
官网:https://www.docker.com/。【魔法】
- 首先安装WSL2。
WSL2(Win Subsys for Linux) 相当于运行在Hypervisor虚拟化平台上的大号虚拟机,有win、Linux两个内核。
两步安装WSL:
- 搜索【启用或关闭win】> 勾选【适用Linux的Win子系统】和【虚拟机平台】
- 管理员身份运行【cmd】 >
wsl --install --web-download
. - 双击Docker安装包【使用WSL2】
遇到问题:
ping raw.githubusercontent.com
不通。host文件添加:
185.199.108.133 raw.githubusercontent.com
。【问题解决】
Docker安装完成
验证:cmd输入 docker version
.
WSL常用命令
wsl --list -v # 查看
wsl -d Ubuntu # 启动子系统 exit 退出
wsl --shutdown # 关闭所有
wsl --unregister name # 卸载
wsl --export Ubuntu ub.tar # 备份、镜像
配置加速镜像
找到设置 > Docker Engine【找到并填入下部分内容】
"experimental": false,"registry-mirrors": ["https://registry.docker-cn.com","https://docker.m.daocloud.io","https://huecker.io","https://dockerhub.timeweb.cloud","https://noohub.ru"]
}# 使生效【应用&重启】
sudo systemctl daemon-reload
sudo systemctl restart docker
- 参考:https://blog.lalkk.com/4533/。
二、使用Docker
查看已拉取镜像:
docker images
。【docker ps
查看容器】
docker pull redis:latestdocker run --name my-redis -p 6379:6379 -d redis:latest # 启动⭐️
-p 6379:6379 # 端口映射到主机,可通过主机的6379访问容器中的Redis
-d # detached 以后台模式运行容器。# Docker Containers >> Exec
redis-server
- 数据持久化
docker run --name my-redis -d -net web-ser -p 6379:6379 -v /docker/data/redis/data:/data -v /docker/data/redis/redis.conf:/etc/redis/redis.conf redis:latest
-net # 将容器添加到网络中(同一个网络中的容器可以直接访问)
-v # 主机目录挂载到容器目录,共享数据。
-v /docker/data/redis/redis.conf:/etc/redis/redis.conf # 挂载配置文件
- 使用Docker安装Redis:https://blog.csdn.net/weixin_46501427/article/details/139158816。
启动Redis容器
docker run -d --name redis-container -p 6379:6379 -v D:/develop/docker/data/Redis:/data -e REDIS_PASSWORD=xxxxxx redis:latest redis-server --requirepass xxxxxx# 远程字典服务,KV型数据库
-e # 配置环境变量,这里用于设置密码
启动MySql
docker pull mysql:8.0
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=xxxxxxxx@@ -e MYSQL_DATABASE=tzx_test -p 3306:3306 --restart unless-stopped mysql:8.0# 开源关系型 DBMS
-e # 启动时创建数据库 tzx_test
--restart # 重启策略 同守护进程,除非手动
启动rabbitMQ
docker pull rabbitmq:management
docker run -d --name rabbitmq-container -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -e RABBITMQ_DEFAULT_VHOST=my_vhost rabbitmq:management# 开源消息代理软件,实现了高级消息队列协议AMQP(消息分发,持久化到磁盘)
5672 # mq默认端口,用于AMQP协议
15672 # 管理插件management的端口,提供一个web界面管理mq
-e # 设置用户名、密码、默认虚拟主机
点开端口
Queues and Streams里添加 名为 test 的队列(15672)
遇到问题: 启动时若 (HTTP code 500) server error ,重启
winnat
。
管理员身份打开cmd:
net stop winnat
net start winnat
【问题解决】
参考:改变软件行业的技术!程序员、软件爱好者必须掌握的Docker,到底是什么?bilibili.🎉 Docker 简介和安装 - Docker 快速入门 - 易文档【文档⭐️】Docker 1小时快速上手教程,无废话纯干货_哔哩哔哩_bilibili.
M a r k . 240927 Mark.240927 Mark.240927