当前位置: 首页 > news >正文

Docker学习(带图详细)

一、安装docker

参考官方文档:https://docs.docker.com/engine/install/centos/

查看系统版本

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]# 
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# 

1.卸载docker旧版本

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

image.png

2.配置Docker的yum库

首先要安装一个yum工具

yum install -y yum-utils

image.png
安装成功后,执行命令,配置Docker的yum源:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

image.png

3.安装Docker

最后,执行命令,安装Docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

image.png
查看安装的版本

docker -v

image.png

4.启动和校验

# 启动Docker
systemctl start docker# 查看Docker的状态
systemctl status docker# 停止Docker
systemctl stop docker# 重启
systemctl restart docker# 设置开机自启
systemctl enable docker# 关闭开机自启动
systemctl disable docker# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

5.配置镜像加速

这里以阿里云镜像加速为例。

5.1 注册阿里云账号

首先访问阿里云网站:
https://www.aliyun.com/
注册一个账号。

5.2 开通镜像服务

在首页的产品中,找到阿里云的容器镜像服务
image.png
点击后进入控制台:
image.png
首次可能需要选择立刻开通,然后进入控制台。

5.3 配置镜像加速

找到镜像工具下的镜像加速器
image.png
具体命令

# 创建目录
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# 查看配置是否生效
docker info|grep Mirrors -A 1

image.png

二、了解镜像和容器

1.镜像和容器

DockerHub:https://hub-stage.docker.com/

官方(需要翻墙):https://hub.docker.com/
image.png

2.命令解读

以mysql为例:

docker run -d \--name mysql \-p 3306:3306 \ -e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \mysql

image.png

3.镜像命名规范

image.png
image.png

三、快速入门

1.常见命令

官方文档:https://docs.docker.com/

image.png

2.实践案例一

2.1 案例需求

image.png

2.2 搜索镜像

https://hub-stage.docker.com/
image.png
image.png
进入官方的
image.png
或者

https://hub.docker.com/u/library

image.png

或者命令搜索

#搜索镜像:从网络中查找需要的镜像
docker search 镜像名称例如:
docker search dvwa

image.png

2.3 拉取镜像

docker输入这个命令进行拉取镜像

docker pull nginx

image.png

2.4 查看镜像

docker images

image.png

2.5 保存镜像到本地

保存镜像到本地

查看帮助
docker save -o --help保存镜像
docker save -o nginx.tar nginx:latest

image.png

2.6 删除镜像

docker rmi 镜像名:版本例如:
docker rmi nginx:latest

image.png

2.7 本地拉取镜像

查看帮助
docker load --help本地拉取镜像
docker load -i nginx.tar
或者
docker load -i nginx.tar -q

image.png

2.8 创建容器

docker run -d --name nginx -p 80:80 nginx-i,以交互模式运行容器,通常与 -t 同时使用
-t,启动容器后,为容器分配一个命令行,通常与-i同时使用
-v,目录映射,容器目录挂载到宿主机目录,格式: <host目录>:<容器目录>
-d,守护进程,后台运行该容器
-p,指定端口映射,格式:主机(宿主)端口:容器端口
-P,随机端口映射,容器内部端口随机映射到主机的端口
-u,以什么用户身份创建容器
--name "nginx-lb",容器名字
-m, --memory bytes,设置容器使用内存最大值
-h, --hostname string,指定容器的 host name
--dns 8.8.8.8,指定容器 dns 服务器
-e username="ritchie",设置环境变量
--restart,Docker 重启后,容器是否自动重启
--privileged,容器内是否使用真正的 root 权限

image.png

2.9 查看容器

docker ps :会列出出正在运行的容器信息。
docker ps -a :会列出当前服务器中所有的容器,无论是否在运行。CONTAINER ID:每个容器的唯一标识符号,自动生成。类似于数据库中的主键。
IMAGE :创建容器使用的镜像名称。
COMMAND:运行容器时的命令。
CREATED:容器创建的时间。
STATUS:容器的运行状态,Up 17 hours 指容器已运行17小时。
docker ps -s:会列出容器的文件大小(容器增加的大小/容器的虚拟大小)docker ps -q:仅列出CONTAINER ID 字段
如批量停止所有容器:docker stop docker ps -a -qdocker ps -l: 显示最后一个运行的容器(无论该容器目前处于什么状态)
docker ps -n 数量x:显示最后 x 个运行容器,当x为1时和 -l 含义相同。(无论该容器目前处于什么状态)docker ps --no-trunc:不对输出进行截断操作,此时可以看到完整的COMMAND,CONTAINER IDdocker -f :使用过滤器来过滤输出
目前支持过滤器:
id (容器的id)
label
name(容器名称)
exited (整数-容器退出状态码,只有在使用-all才有用)
status 容器状态(created,restarting,running,paused,exited,dead)
ancestor 过滤从指定镜像创建的容器
before (容器的名称或id),过滤在给定id或名称之后创建的容器
isolation (default process hyperv) (windows daemon only)
volume (数据卷名称或挂载点),–过滤挂载有指定数据卷的容器
network(网络id或名称),过滤连接到指定网络的容器示例:
docker ps -f status=exited
docker ps -f ancestor=597ce1600cf4 -f status=exited -adocker ps --formart {{.Names}}:以go的形式格式化输出列表
go模板
.ID 容器的ID
.Image 镜像的ID
.Command 容器启动的命令
.CreatedAt 创建容器的时间点
.RunngingFor 从容器创建到现在过去的时间
.Ports 暴露的端口
.Status 容器的状态
.Size 容器硬盘的大小
.Names 容器的名称
.Label 指定label的值
.Mounts 挂载到这个容器的数据卷名称示例:
docker ps --formart {{.Names}}---{{.Image}}
docker ps
或者查看所有的容器
docker ps -a自定义查看容器信息
docker ps --format "table {{.ID}}\t{{.Image}}\{{.Ports}}\t{{.Status}}\t{{.Names}}"

image.png
image.png

2.10 停止容器

# 停止一个容器
docker stop 容器i或者容器名# 停止所有容器
docker stop $(docker ps -q)
  • docker ps -q:列出所有运行中容器的ID。
  • docker stop:停止一个或多个运行中的容器。

示例一:

docker stop nginx

image.png

示例二:

2.11 启动容器

docker start nginx

image.png

2.12 查看日志

docker logs nginx或者一直查看
docker logs -f nginx

image.png

2.13 进入容器

说明:-it参数是可交互的模式    bash是命令行模式
docker exec -it nginx bash

image.png

2.14 退出容器

exit

image.png

2.15 删除容器

删除所有容器

docker rm $(docker ps -aq)
  • docker ps -aq:列出所有容器(包括未运行的)的ID。
  • docker rm:移除一个或多个容器。

删除单个容器

docker rm 容器id(或者容器名)
或者用-f操作强制删除
docker rm -f 容器id(或者容器名)

示例一:

docker rm nginx注意:
删除容器的时候,如果不强行删除的话,需要先停止容器
docker stop nginx

image.png
示例二:

docker rm $(docker ps -aq)

image.png

四、配置Docker国内源

可用源
●Docker 官方中国区:https://registry.docker-cn.com
●网易:http://hub-mirror.c.163.com
●中国科技大学:https://docker.mirrors.ustc.edu.cn
●阿里云:https://y0qd3iq.mirror.aliyuncs.com

1.配置源文件

增加Docker的镜像源配置文件 /etc/docker/daemon.json
如果没有配置过镜像源该文件默认是不存在的

vim /etc/docker/daemon.json

在其中增加如下内容

{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

2.重启docker

service docker restart

3.查看配置是否生效

docker info|grep Mirrors -A 1

五、逻辑卷

1.图解

image.png

2.基本命令

image.png

查看命令帮助信息
docker volume --help

image.png

3.实践案例二

image.png

3.1 创建逻辑卷和容器

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

image.png

3.2 查看逻辑卷位置

docker volume ls查看具体位置
docker volume inspect html

image.png

image.png
那么以后在宿主机的这个目录下操作文件和在docker容器中操作是一样的效果

3.3 总结

image.png

4.实践案例三

image.png
mysql官方文档:https://hub-stage.docker.com/_/mysql

4.1 查看容器的详情

docker inspect 容器名(或者是ID)docker inspect nginx

主要看Mounts的配置信息
image.png

"Mounts": [{"Type": "volume","Name": "html","Source": "/var/lib/docker/volumes/html/_data","Destination": "/usr/share/nginx/html","Driver": "local","Mode": "z","RW": true,"Propagation": ""}],

image.png
image.png

4.2 挂载目录

image.png

docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
mysql

image.png
创建成功后
image.png
image.png

注意:在运行之前,需要创建这些目录

cd /rootmkdir mysqlcd mysqlmkdir datamkdir confmkdir init

image.png
在conf目录下创建配置文件hm.cnf,代码如下

[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

然后在init目录下创建数据信息hmall.cnf
image.png

4.3 验证数据持久保存

先删除容器

docker rm -f mysql

无法在连接数据库
image.png
但是数据还在宿主机上
image.png

再次重新创建容器

docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
mysql

image.png
查看连接数据库,发现连接成功,并且数据都还在
image.png

六、自定义镜像

image.png
image.png
image.png

1.基础命令

官方文档:https://docs.docker.com/engine/reference/builder
image.png

2.构建解读

image.png
image.png

image.png

3.总结

image.png

七、网络

image.png

1.基本命令

image.png

2.创建网络

docker network create 网络名例如:
docker network create hm

image.png

3.查看网络

docker network ls

image.png

4.将容器添加到网络

docker network connect 网络名 容器名例如:
docker network connect hm mysql

image.png

5.查看容器信息

docker inspect mysql

image.png

八、Docker Compose

image.png
image.png

1.命令选项

build    —— 构建(重新构建)项目中的服务容器
config   —— 检测compose文件的错误
up       —— 启动服务
down     —— 停止容器
images   —— 列出项目中所包含的镜像
logs     —— 查看服务容器的日志
kill     —— 发送 SIGKILL 信号来强制停止服务容器
port     —— 查看某个容器端口所映射的公共端口
ps       —— 列出项目中目前的所有容器
restart  —— 重启项目中的服务
rm       —— 删除所有停止状态的服务容器
run      —— 在指定服务上运行一个命令
scale    —— 设置指定服务运行的容器个数
stop     —— 停止处于运行状态的容器
start    —— 启动被stop的服务容器
top      —— 查看各个服务容器内运行的进程
pause    —— 暂停一个服务容器
unpause  —— 恢复处于暂停状态中的服务

2.例子

version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"networks:- newhmall:build:context: .dockerfile: Dockerfilecontainer_name: hmallports:- "8080:8080"networks:- newdepends_on:- mysqlnginx:image: nginxcontainer_name: nginxports:- "18080:18080"- "18081:18081"volumes:- "./nginx/nginx.conf:/etc/nginx/nginx.conf"- "./nginx/html:/etc/nginx/html"depends_on:- hmallnetworks:- new
networks:new:name: hmall

image.png

相关文章:

Docker学习(带图详细)

一、安装docker 参考官方文档&#xff1a;https://docs.docker.com/engine/install/centos/ 查看系统版本 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# [rootlocalhost ~]# uname -a Linux localhost.localdomai…...

RabbitMQ 如何使用延迟队列

RabbitMQ 如何使用延迟队列 目录 前置条件场景描述RabbitMQ 延迟队列机制实现步骤 1. 安装 RabbitMQ 延迟队列插件2. 创建延迟队列和交换机3. 发布延迟消息4. 消费延迟消息 示例代码 1. 延迟队列配置2. 发布消息的 Producer 代码3. 消费消息的 Consumer 代码 注意事项 前置条…...

【C++】栈和队列

目录 前言 一、stack 1. 栈的定义 2. 成员函数 二、queue 1. 队列的定义 2. 成员函数 三、priority_queue 1. 优先队列的定义 2. 成员函数 前言 栈和队列是STL中很重要的两个容器&#xff0c;栈的特点是先进后出&#xff1b;队列的特点是先进先出。还有优先队列&…...

常用的预编码算法学习

一、概况 预编码算法的常用实现方式有以下几种: 1. 间隔预编码(Interval Pre-coding):该算法将原始数据分成若干个间隔,然后对每个间隔内的数据进行编码。间隔的长度可以根据具体情况进行选择,常见的间隔长度有固定长度和可变长度两种方式。 2. 迭代预编码(Iterative…...

人才培养计划大纲

构建全面而高效的人才培养规划 文章大纲&#xff1a; 引言 人才培养的重要性当前人才培养面临的挑战文章目的与结构人才培养规划的基本概念 定义与内涵人才培养规划与企业战略的关系人才培养规划的基本原则人才培养规划的现状分析 当前人才培养规划的实践情况存在的问题与不足…...

多语言环境下的正则表达式实战:校验整数、小数

在软件开发中&#xff0c;正则表达式是验证用户输入数据格式的强大工具&#xff0c;特别是在处理表单验证时。本文将通过JavaScript、Java、Python、C、Rust、Go、C六种编程语言展示如何使用正则表达式来校验输入是否为整数或小数&#xff0c;特别强调小数点后最多保留两位的场…...

过拟合和欠拟合的学习

1.什么拟合 就是说这个曲线能不能很好地描述某些样本数据&#xff0c;并且拥有较好的泛化能力。 2.什么是过拟合 过拟合就是曲线太过于贴切训练数据的特征了&#xff0c;在训练集上表现得非常优秀&#xff0c;近乎完美的预测/区分了所有得数据&#xff0c;但是在新的测试集上…...

中间件的使用

中间件是全局使用 工厂函数定义中间件 middleware.py # 工厂函数的中间件 def simple_middleware(get_response):def middleware(request):print("在视图函数处理之前执行、、、、、")response get_response(request)print("在视图函数处理之后执行。。。。…...

阿里云OSS权限开通步骤及最佳实践

在阿里云云计算平台中&#xff0c;对象存储服务&#xff08;OSS&#xff09;是一种高度可扩展的云存储服务&#xff0c;提供了安全、可靠、低成本的数据存储解决方案。在使用OSS时&#xff0c;正确配置权限是至关重要的&#xff0c;以确保数据的安全性和访问控制。本文将介绍阿…...

【Python贪吃蛇】:编码技巧与游戏设计的完美结合

文章目录 &#x1f525;一、运行效果&#x1f4a5;二、游戏教程✈1. 导入模块❤️2. 初始化游戏元素☔3. 改变蛇移动的方向&#x1f44a;4. 绘制方块&#x1f680;5. 检查蛇头是否在游戏区域内&#x1f308;6. 定义蛇的移动函数&#x1f3ac;7. 绑定键盘事件 ⭐三、完整代码 &a…...

2024.5.19 机器学习周报

引言 Abstract 文献阅读 1、题目 X-HRNET: TOWARDS LIGHTWEIGHT HUMAN POSE ESTIMATION WITH SPATIALLY UNIDIMENSIONAL SELF-ATTENTION 2、引言 高分辨率表示是人体姿态估计实现高性能所必需的&#xff0c;随之而来的问题是高计算复杂度。特别地&#xff0c;主要的姿态估…...

母亲节祝福html源码示例

创建一个完整的HTML页面&#xff0c;我可以为您提供一个简单的HTML模板&#xff0c;其中包含一些示例性的祝福语&#xff0c;并添加一些注释以帮助您理解如何扩展内容。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8&qu…...

微信小程序开发中的权限管理与用户身份验证:守护数据安全与用户体验

微信小程序开发中的权限管理与用户身份验证&#xff1a;守护数据安全与用户体验 引言 在微信小程序开发中&#xff0c;权限管理和用户身份验证是确保数据安全、保护用户隐私以及提供个性化服务的关键环节。本文将深入探讨微信小程序中如何实现权限管理和用户身份验证&#xf…...

Python3 笔记:二进制的转换

十进制是逢十进一&#xff0c;二进制就是逢二进一。 十进制里最大的数字是9&#xff0c;二进制里最大的数字是1。 11010010001000010000010000001000000010^0110^11010^210010^3100010^41000010^510000010^6100000010^7100000002^012^122^242^382^4162^5322^6642^7128 1、十进…...

代码审计-PHP模型开发篇动态调试反序列化变量覆盖TP框架原生POP链

知识点 1、PHP审计-动态调试-变量覆盖 2、PHP审计-动态调试-原生反序列化 3、PHP审计-动态调试-框架反序列化PHP常见漏洞关键字 SQL注入&#xff1a; select insert update delete mysql_query mysqli等 文件上传&#xff1a; $_FILES&#xff0c;type"file"&…...

前端动态旋转地球背景

效果图 贴下源码 <template><div class"map-bg"><div class"canvas" id"canvs"></div><canvas class"canvasxk" id"canv"></canvas></div> </template><script setup …...

MySQL中的子查询

子查询,在一个查询语句中又出现了查询语句 子查询可以出现在from和where后面 from 表子查询(结果一般为多行多列)把查询结果继续当一张表对待 where 标量子查询(结果集只有一行一列)查询身高最高的学生,查询到一个最高身高 列子查询(结果集只有一行多列) 对上表进行如下操作 …...

Unity打开安卓设备不同的设置面板

1&#xff0c;打开安卓设备不同的设置面板&#xff0c;我还贴心的把Android官网的链接放下面了 2&#xff0c;使用也很方便&#xff1a;unity按钮事件上拖这个脚本&#xff0c;注册MyOpenAndroidSettings方法&#xff0c;参数 填 和枚举值相应的数字 // 功能&#xff1a;打开…...

低空经济+无人机:低空物资运输技术详解

随着科技的飞速发展和航空产业的日益壮大&#xff0c;低空经济已成为全球经济的重要组成部分。无人机作为低空经济的重要载体&#xff0c;其在低空物资运输领域的应用逐渐凸显&#xff0c;为物流、救援等多个领域带来了革命性的变革。 一、低空经济概述 低空经济是指在垂直高度…...

全场景智能终端RK3288主板在智能垃圾回收项目的应用,支持鸿蒙,支持全国产化

全场景智能终端主板AIoT-3588A推出的智能化垃圾回收项目&#xff0c;旨在解决城市化进程中日益突出的垃圾处理问题。智能垃圾分类箱具备触屏操作、自动称重、分类投放以及电子语音播报提示等多项功能&#xff0c;居民能够经过分类积分卡、手机扫码、人脸识别等多种途径进行投放…...

UniMcp开源项目:构建音乐教育应用的标准化数据协议与开发实践

1. 项目概述&#xff1a;一个为音乐学习应用打造的开发者工具如果你是一名开发者&#xff0c;正在为“Yousician”这类音乐学习应用构建功能&#xff0c;或者你是一个对音乐教育技术感兴趣的程序员&#xff0c;那么你很可能遇到过这样的困境&#xff1a;如何高效地管理那些复杂…...

Yokogawa ADV551数字输出模块

Yokogawa ADV551 数字输出模块是横河 CENTUM VP/CS 3000 系统的核心输出组件&#xff0c;具备以下 15 条特点&#xff1a;提供 32 路独立数字量输出通道。额定电压 24V DC&#xff0c;每通道负载能力充足。输出类型为电流吸收型&#xff08;Current Sink&#xff09;。支持状态…...

减少重复劳作,气泡图软件助力质检效率升级

在制造业做过质量或工程的人&#xff0c;一定都有过这种体验&#xff1a;一张复杂图纸几百个尺寸&#xff0c;一个个手动画气泡、编号、抄 Excel&#xff0c;眼睛越看越花&#xff0c;手指越敲越累。更折磨的是&#xff0c;图纸一改&#xff0c;气泡编号几乎要全部重来&#xf…...

粉笔事业单位适合备考资格复审后面试吗?从材料确认、题型训练到岗位表达的评测

更新日期&#xff1a;2026年5月 很多事业单位考生在进入资格复审后&#xff0c;会搜索“粉笔事业单位怎么样”“粉笔事业单位面试适合资格复审后准备吗”“事业单位资格复审后怎么准备面试”。这些问题背后&#xff0c;真正关心的是&#xff1a;资格复审通过后距离面试通常不远…...

CAXA 中心线

位置命令属性自由&#xff08;方式&#xff09;1、触发命令&#xff1b;2、属性如下&#xff1b;3、点击对象&#xff1b;&#xff08;例如这里点击圆弧&#xff09;4、输入定位点&#xff0c;或移动鼠标&#xff1b;5、点击确定中心线大小&#xff1b;指定延长线长度&#xff…...

基于OpenCV与MediaPipe的手势与头部姿态控制鼠标实现

1. 项目概述&#xff1a;解放双手的鼠标控制新范式最近在GitHub上看到一个挺有意思的项目&#xff0c;叫ShafwanAbd/handsfree-mouse。顾名思义&#xff0c;这是一个“免提鼠标”项目&#xff0c;核心目标是通过摄像头捕捉你的手势或头部动作&#xff0c;来替代传统的物理鼠标&…...

MATLAB许可排队严重?研发软件许可共享,不增购满足需求

我去年带着团队做自动驾驶算法验证&#xff0c;结果MATLAB许可证天天排队。每天早上团队成员像抢盲盒一样点开MATLAB&#xff0c;结果发现根本抢不到。我们项目组三人全用同一个许可证&#xff0c;项目延期三个月&#xff0c;研发效率直线下滑。这种乱象真的该结束了。问题本质…...

别再被Nginx的rewrite循环搞懵了!一个真实Vue项目部署的500错误排查实录

从Nginx重定向死循环到优雅解决&#xff1a;Vue项目部署的深度排错指南 凌晨三点&#xff0c;服务器监控突然告警——刚上线的Vue企业门户网站出现大面积500错误。查看日志时&#xff0c;那个令人窒息的rewrite or internal redirection cycle错误信息让整个运维团队陷入沉思。…...

告别繁琐组态:用SVG + JavaScript 5分钟为你的工业设备创建可交互HMI组件

工业设备HMI组件开发革命&#xff1a;5分钟用SVGJavaScript打造智能交互界面 在工业自动化领域&#xff0c;人机界面(HMI)是连接设备与操作者的关键纽带。传统HMI开发往往陷入两个极端&#xff1a;要么使用笨重的组态软件进行繁琐配置&#xff0c;要么投入大量时间开发定制化界…...

3步搞定Unity游戏中文翻译:XUnity.AutoTranslator完全指南

3步搞定Unity游戏中文翻译&#xff1a;XUnity.AutoTranslator完全指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏的语言障碍而苦恼吗&#xff1f;想体验原汁原味的游戏内容却看不懂菜…...