初尝Docker容器

初尝Docker容器

安装Desktop on Windows

Install Docker Desktop on Windows | Docker Docs

遇到的问题

当前计算机配置不支持 WSL2。 请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用虚拟化。 通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribu

wsl虚拟化

修复Hyper-V启动配置(管理员账户)

bcdedit /set hypervisorlaunchtype auto

重启计算机

重启后验证修复效果:
再次以管理员身份打开终端,依次执行以下命令

# 先检查Hyper-V启动状态(确认已改为Auto) bcdedit /enum | findstr hypervisorlaunchtype # 再验证WSL2状态 wsl --status

如果第一步输出变为hypervisorlaunchtype Auto,说明配置改对了,直接安装ubuntu

wsl --install --web-download

安装完成后,就可以启动docker软件,配置Docker Engine使用docker了

发现一些有趣的Docker项目:

PokéRogue

一款永无止尽的宝可梦肉鸽纯对战游戏。

部署方法:

步骤一:

创建docker-compose.yml文件

version: "3.8" services: pokerogue: image: heizicao/pokerogue:latest container_name: pokerogue-web ports: - "8080:3000" environment: - TZ=Asia/Shanghai # 指向本地后端API - VITE_API_URL=http://localhost:8001 restart: always depends_on: - server server: image: ceramicwhite/pokerogue:server-4d6de1e container_name: pokerogue-server command: [ "--debug", "--dbaddr", "db", "--dbuser", "pokerogue", "--dbpass", "pokerogue", "--dbname", "pokeroguedb" ] restart: unless-stopped depends_on: db: condition: service_healthy db: image: mariadb:11 container_name: pokerogue-db restart: unless-stopped healthcheck: test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"] start_period: 10s interval: 1m timeout: 5s retries: 3 environment: MYSQL_ROOT_PASSWORD: admin MYSQL_DATABASE: pokeroguedb MYSQL_USER: pokerogue MYSQL_PASSWORD: pokerogue volumes: - db-data:/var/lib/mysql volumes: db-data:

步骤二:

启动环境(确定安装并启动了Desktop Docker)

docker compose up -d

步骤三:

访问http:localhost:8080

至此PokéRogue部署完成

关闭环境:

docker-compose down

Linux-command

Linux 命令手册

部署命令:

docker pull wcjiang/linux-command

启动:

docker run --name linux-command -itd -p 9665:3000 wcjiang/linux-command:latest

访问http://localhost:9665/

关闭命令:

docker stop linux-command

启动命令:

docker start linux-command

内网穿透(端口映射)

采用cftunnel进行端口映射,windows安装命令:

irm https://raw.githubusercontent.com/qingchencloud/cftunnel/main/install.ps1 | iex

安装好后,使用:

cftunnel quick 8080

现在就可以通过隧道访问

在命令行Ctrl + C 即可关闭隧道。

删除容器以及镜像

# 进入项目目录(替换成你自己的路径) cd /path/to/pokerogue # 停止并删除所有服务容器 + 网络,保留数据卷(存档还在) docker compose down # 如果你连存档也想删掉,加上 -v 会删除数据库数据卷(存档清空) docker compose down -v #查看相关镜像 ID docker images | grep pokerogue #删除镜像 docker rmi 9d520a505750 d5fa8065a00e #清理无用数据 docker system prune -f #验证 docker images