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

海阳建设局网站网站首页推广

海阳建设局网站,网站首页推广,跨境电商seo什么意思,中国建筑新闻网目录 镜像的配置 镜像的拉取 推荐镜像源列表(截至2025年2月测试有效) 配置方法 修改容器名字 如何使用卷 创建不同的容器,每个容器中有不同的mysql和java版本(不推荐) 1. 安装 Docker Desktop(Win…

目录

镜像的配置

镜像的拉取

推荐镜像源列表(截至2025年2月测试有效) 

配置方法

修改容器名字

如何使用卷

创建不同的容器,每个容器中有不同的mysql和java版本(不推荐)

1. 安装 Docker Desktop(Windows)

2. 启用 WSL 2(Windows Subsystem for Linux 2)

3. 拉取 MySQL 和 Java 镜像

4. 创建并启动容器

5. 使用 Docker Compose(Windows)

总结

但是上面的做法是不推荐的

使用Navicat连接docker中的MySQL8

docker中MySQL数据库的导出和恢复

导出 MySQL 数据库并发送给别人

在别人容器中恢复数据库

演示

使用卷(volumes)来持久化数据

示例:如何持久化数据库数据

你可以查看这些卷:

如何避免自动卷?


镜像的配置

这是我的

"registry-mirrors": ["https://你的id.mirror.aliyuncs.com","https://mirror.ccs.tencentyun.com","http://hub-mirror.c.163.com","https://registry.docker-cn.com"]

镜像的拉取

根据2025年2月的最新测试结果,以下是国内可用的Docker镜像加速源推荐列表,这些镜像源在速度和稳定性方面表现较好,适合替代默认的Docker Hub以提升镜像拉取效率:


推荐镜像源列表(截至2025年2月测试有效) 

  1. docker.m.daocloud.io

    • DaoCloud 提供的官方镜像加速服务,覆盖主流镜像,拉取速度快且稳定性高。

  2. docker-0.unsee.tech

    • 社区维护的镜像站,实测拉取时间约8.77秒,适合基础镜像加速。

  3. docker.1ms.run

    • 毫秒级响应,适合对速度要求较高的场景,拉取时间约10.70秒。

  4. func.ink

    • 快速且稳定,拉取时间仅8.32秒,适合高频使用1。

  5. docker.imgdb.de

    • 德国镜像站的中国节点,支持多类镜像,同步速度较快。

  6. docker.hlmirror.com

    • 国内社区维护,实测拉取时间约14.16秒,支持主流镜像。

  7. docker.zhai.cm

    • 个人开发者维护,拉取时间约8.89秒,适合轻量级镜像。

  8. fast360.xyz

    • 企业级镜像加速服务,响应速度快,适合大型镜像。

  9. lispy.org

    • 社区推荐,拉取时间约14.09秒,支持多种公共镜像。

  10. 中国官方镜像:https://registry.docker-cn.com
    网易163镜像:http://hub-mirror.c.163.com
    中科大镜像:https://docker.mirrors.ustc.edu.cn
    阿里云镜像:https://[xxx].mirror.aliyuncs.com


配置方法

  1. 永久配置(推荐)
    修改 Docker 的配置文件 daemon.json,添加多个镜像源以提升容错性:

      "registry-mirrors": ["https://docker.m.daocloud.io","https://docker-0.unsee.tech","https://docker.1ms.run","https://func.ink","https://docker.imgdb.de"]
    
  2. 临时使用
    在拉取命令中直接指定镜像源地址(无需 https:// 前缀):

    docker pull docker.m.daocloud.io/hello-world:latest

注意事项

  1. 镜像同步延迟
    部分镜像源可能未同步最新镜像(如阿里云镜像站),若拉取失败可切换其他源。

  2. 地区限制
    某些镜像源可能受地区网络影响(如企业内网限制),建议结合本地网络环境测试。

  3. 服务波动
    社区维护的镜像源可能存在不稳定性,推荐配置多个备用地址。

  4. 验证配置是否生效
    执行 docker info,若输出中显示 Registry Mirrors 列表,则配置成功。


性能测试建议

  • 使用 time 命令对比镜像拉取速度:

    time docker pull hello-world:latest
  • 移除本地缓存后测试,结果更准确。

修改容器名字

Docker Desktop 界面本身没有直接修改容器名字的选项,但你可以通过以下步骤来完成:

步骤:

  1. 停止容器: 首先,确保容器处于停止状态。在 Docker Desktop 界面,找到 quizzical_brattai 容器,点击右侧的 "Stop" 按钮停止该容器。

  2. 重命名容器: 打开 Docker Desktop 中的 Terminal 或者使用命令行,输入以下命令来重命名容器,假设你想把 quizzical_brattai 容器改名为 new-hello-world,命令应该是:

    docker rename quizzical_brattai new-container-name
  3. 启动容器: 重命名容器后,你可以重新启动它。在 Docker Desktop 界面中,找到该容器,点击 "Start" 按钮。

注意:

  • 容器重命名不会改变容器的功能或配置,它只是更改容器的名称。
  • 容器的镜像 (hello-world) 不会改变,因为镜像和容器是不同的概念。你可以用相同的镜像启动多个容器,只需要不同的容器名称。

如何使用卷

卷(volumes)主要用于数据持久化和容器之间的数据共享。容器在运行时会创建文件系统,但这些文件系统是临时的,容器停止后数据会丢失。而卷提供了一种方式,让你能够在容器和主机之间持久化数据,并且容器之间也可以共享这些数据。

在Docker中,卷可以通过以下几种方式进行使用:

  • 命令行创建和使用卷:可以通过 docker volume create 命令创建卷,使用时通过 -v 参数将卷挂载到容器中。

    示例:

    docker volume create myvolume
    docker run -d -v myvolume:/data mycontainer
    
  • 将主机目录挂载为卷:除了使用 Docker 管理的卷,还可以将主机的某个目录直接挂载到容器中,这对于开发和调试非常方便。

    示例:

    docker run -d -v C:\path\to\host\folder:/data mycontainer
    

总之,Docker中的卷是一种非常重要的功能,能够保证数据的持久性,并提高容器的可移植性和灵活性。

创建不同的容器,每个容器中有不同的mysql和java版本(不推荐)

要在 Docker 中创建多个容器,每个容器中包含不同版本的 MySQL 和 Java,可以使用 Docker 的 多容器管理。你可以为每个容器选择不同的 MySQL 和 Java 版本,以下是详细的步骤。

1. 安装 Docker Desktop(Windows)

确保你已经在 Windows 上安装并启动了 Docker Desktop。如果没有安装,你可以从 Docker 官网下载并安装:Docker Desktop for Windows。

2. 启用 WSL 2(Windows Subsystem for Linux 2)

在 Windows 上运行 Docker Desktop 时,通常需要启用 WSL 2(Windows Subsystem for Linux 2)作为后端。Docker Desktop 会自动配置 WSL 2。

  • 打开 PowerShell 以管理员身份运行,执行以下命令来启用 WSL:

    wsl --install
    
  • 如果已安装 WSL,可以通过以下命令升级为 WSL 2:

    wsl --set-default-version 2
    
  • 确保你已经安装了合适的 Linux 发行版(例如 Ubuntu)。可以在 Microsoft Store 中找到并安装。

3. 拉取 MySQL 和 Java 镜像

在 Windows 上,你可以使用 Docker Desktop 自带的 PowerShell命令提示符 来运行 Docker 命令。

  • 拉取 MySQL 镜像: 打开 PowerShell 或命令提示符,输入以下命令来拉取 MySQL 镜像(例如 MySQL 5.7):

    docker pull mysql:5.7
    
  • 拉取 Java 镜像: 同样,拉取 Java 镜像(例如 OpenJDK 8):

    docker pull openjdk:8
    

4. 创建并启动容器

  • 你可以使用下面的命令在 Windows 上创建和启动容器。

    创建 MySQL 5.7 容器

    docker run --name mysql-java8-container -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.7
    

    进入容器

    docker exec -it mysql-java8-container bash
    

    安装 Java 8: 在容器内使用以下命令安装 Java 8:

    apt-get update
    apt-get install openjdk-8-jdk -y
    

    创建 MySQL 8.0 容器并安装 Java 11

    docker run --name mysql-java11-container -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:8.0
    docker exec -it mysql-java11-container bash
    apt-get update
    apt-get install openjdk-11-jdk -y
    

5. 使用 Docker Compose(Windows)

详细教程:Windows下Docker Compose使用教程-CSDN博客

Docker Desktop 也支持 Docker Compose,在 Windows 上使用与其他操作系统相同。你可以创建一个 docker-compose.yml 文件来定义多个容器服务。

  1. 创建 docker-compose.yml 文件

    使用文本编辑器创建一个名为 docker-compose.yml 的文件,并将以下内容复制到该文件中:

    version: '3'
    services:mysql-java8:image: mysql:5.7container_name: mysql-java8-containerenvironment:MYSQL_ROOT_PASSWORD: rootpasswordvolumes:- mysql-data:/var/lib/mysqlports:- "3306:3306"java8:image: openjdk:8container_name: java8-containercommand: ["java", "-version"]mysql-java11:image: mysql:8.0container_name: mysql-java11-containerenvironment:MYSQL_ROOT_PASSWORD: rootpasswordvolumes:- mysql-data:/var/lib/mysqlports:- "3307:3306"java11:image: openjdk:11container_name: java11-containercommand: ["java", "-version"]volumes:mysql-data:
    
  2. 启动 Docker Compose 服务

    打开 PowerShell 或命令提示符,导航到 docker-compose.yml 文件所在的目录,然后运行以下命令来启动服务:

    docker-compose up -d
    
  3. 检查容器状态: 运行 docker ps 命令检查容器是否成功启动。

总结

这些步骤是针对 Windows 环境的。如果你在 Windows 下遇到任何问题,确保 Docker Desktop 和 WSL 2 正常运行。如果你已经完成了 Docker Desktop 的安装并启用了 WSL 2,剩下的步骤和 Linux/macOS 环境类似,可以直接使用命令行操作。

通过上述步骤,你可以创建多个 Docker 容器,每个容器中有不同版本的 MySQL 和 Java。使用 Docker Compose 可以简化多个容器的管理,便于同时运行和管理不同版本的服务。这样,你可以根据需要在同一台机器上运行多个环境,每个环境包含不同的 MySQL 和 Java 版本。

但是上面的做法是不推荐的

在 Docker 中,容器是相互隔离的。你可以在同一个容器中运行多个服务或应用程序,但这样做并不推荐,因为这会违背容器化的基本理念:每个容器应该只负责一个服务。这种做法可能会导致管理上的复杂性以及环境冲突。

对于你的情况,如果你将 MySQL 和 JDK 8 放在同一个容器中运行,确实不会直接影响到 Windows 环境中的 Java 设置。然而,这样做并不符合最佳实践,因为它会让你失去容器本来的隔离性和灵活性,且在需要维护时可能更加困难。

更推荐的做法是分别为 MySQL 和 JDK 创建单独的容器,并通过 Docker 的网络功能将它们连接起来,这样可以避免相互干扰并保持每个服务的独立性。你还可以使用 Docker Compose 来管理多个容器。

如果你坚持将它们放入同一个容器,可以在 Dockerfile 中基于某个基础镜像(例如 Ubuntu)安装 JDK 和 MySQL 服务,并确保它们能够正常启动。但我建议你考虑分开部署,以便更容易管理和维护。

在你使用 docker exec 进入容器时,运行 apt-get install openjdk-8-jdk -y 不会从本地已经拉取的 openjdk-8 镜像安装,而是会从 Docker Hub 上下载对应的 OpenJDK 8 镜像。

这是因为你创建的容器基于 MySQL 镜像(mysql:8),该镜像中并不包含 Java 环境。因此,运行 apt-get install openjdk-8-jdk 会尝试从 Docker Hub 下载并安装 OpenJDK 8。由于 MySQL 镜像并不包含 Java,所以它没有相关的 Java 环境。

要在容器内使用 Java,你有两种选择:

  1. 直接在容器中安装 OpenJDK: 你可以在容器内运行 apt-get updateapt-get install openjdk-8-jdk -y 来安装 OpenJDK 8。这会从网络下载并安装 OpenJDK 8。在安装完成后,你就可以在容器中使用 Java 了。

  2. 基于 OpenJDK 镜像创建容器: 你可以创建一个基于 OpenJDK 镜像的容器。例如,你可以运行以下命令来拉取 OpenJDK 镜像并创建容器:

    docker run --name java-container -it openjdk:8 bash
    

    然后,你就可以在这个容器中直接使用 Java,而不需要安装 OpenJDK。

如果你希望在同一个容器中同时运行 MySQL 和 Java,建议使用 Docker Compose 来同时启动多个服务容器。

使用Navicat连接docker中的MySQL8

端口映射:你需要将 MySQL 容器的端口暴露到主机上,这样才能通过 Navicat 连接。默认情况下,MySQL 使用 3306 端口。你需要在运行容器时添加端口映射参数

打开docker的终端输入:

docker run --name mysql8-container -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:8

会出现并运行该容器

打开Navicat新建连接,测试连接,密码就是刚刚设置的123456

(此时本地的MySQL是关闭的,说明连接的就是docker中的MySQL)

docker中MySQL数据库的导出和恢复

如果你想将当前容器中的 MySQL 数据库导出并发送给别人,这两个文件(SQL 文件和配置文件)可以作为导出的结果来复制你的数据库:

  1. xx.sql 文件:这个文件包含了数据库的结构(例如表、索引、视图等)和数据(例如 INSERT 语句)。它可以用来在其他 MySQL 容器或实例中重建相同的数据库,包括数据表、数据等。

  2. xx.cnf 文件:这是 MySQL 的配置文件,包含了 MySQL 服务的运行参数(如端口、字符集等)。如果别人希望使用与你相同的配置,可以将这个文件放到他们的 MySQL 容器中,替换掉现有的配置文件(如果有不同配置需求)。

导出 MySQL 数据库并发送给别人

假设你希望导出 MySQL 数据库,可以使用 mysqldump 命令来进行备份:

  1. 导出数据库结构和数据: 在 Docker 容器中执行以下命令将数据库导出为 SQL 文件:

    docker exec -it mysql-java8-container mysqldump -u root -p123456 --all-databases > /tmp/all_databases.sql
    

    这将导出所有数据库的数据和结构。如果你只想导出特定的数据库,可以使用:

    docker exec -it mysql-java8-container mysqldump -u root -p123456 database_name > /tmp/database_name.sql
    
  2. 复制导出的 SQL 文件到本地: 使用 docker cp 命令将导出的 SQL 文件从容器复制到本地:

    docker cp mysql-java8-container:/tmp/all_databases.sql /path/to/local/directory
    
  3. 复制配置文件(如果需要): 如果你需要包括配置文件,可以将 hm.cnf 文件从容器复制到本地:

    docker cp mysql-java8-container:/etc/mysql/my.cnf /path/to/local/directory/hm.cnf
    
  4. 发送给别人: 你可以将 all_databases.sql 或单个数据库的 SQL 文件以及 hm.cnf 文件发送给别人。别人只需要按照前面的步骤,先将这些文件导入到他们的 MySQL 容器中,然后再根据需要配置 hm.cnf 文件即可。

在别人容器中恢复数据库

  1. 导入数据库结构和数据: 别人可以将 all_databases.sqldatabase_name.sql 文件复制到他们的 MySQL 容器中,然后使用以下命令恢复:

    docker cp /path/to/all_databases.sql mysql-java8-container:/tmp/all_databases.sql
    docker exec -it mysql-java8-container bash
    mysql -u root -p123456 < /tmp/all_databases.sql
    
  2. 应用配置文件(如果需要): 如果有配置文件需要替换,别人可以将 hm.cnf 文件复制到容器中,并重启 MySQL 服务:

    docker cp /path/to/hm.cnf mysql-java8-container:/etc/mysql/my.cnf
    docker restart mysql-java8-container
    

总结

  • SQL 文件 用于导出和导入数据库的结构和数据。
  • 配置文件 用于在不同环境中复制相同的 MySQL 配置。

通过这两个文件,别人可以在他们的容器中恢复你的数据库并应用相同的配置。

演示

现在我本地已经有hmall.sql和hm.cnf

有两种方式来恢复该数据库

方式一:在 Docker 中的 MySQL 容器中运行这些文件,hmall.sql和hm.cnf

  1. 运行 SQL 文件 (hmall.sql): 你可以将 hmall.sql 文件加载到 MySQL 容器中,步骤如下:

    • 将 SQL 文件复制到容器中: 使用 docker cp 命令将 hmall.sql 文件从本地复制到容器中:

      docker cp "F:\hmall.sql" mysql8-container:/tmp/hmall.sql
      
    • 进入容器并执行 SQL 文件: 进入容器并使用 MySQL 命令行工具运行该 SQL 文件:

      docker exec -it mysql8-container bash
      mysql -u root -p123456 < /tmp/hmall.sql
      

      这样会执行 hmall.sql 中的所有 SQL 命令,将数据和结构导入到 MySQL 数据库中。

  2. 应用配置文件 (hm.cnf): 配置文件通常用于自定义 MySQL 的运行设置。要在 Docker 中使用 hm.cnf 文件,你可以将它复制到容器中的 MySQL 配置目录,并重启 MySQL 服务。

    • 复制配置文件到容器中

      docker cp /path/to/hm.cnf mysql-java8-container:/etc/mysql/my.cnf
      
    • 重启 MySQL 容器: 重启容器使新配置生效:

      docker restart mysql-java8-container
      

方式二:运行docker中含有MySQL的容器后,在Navicat中运行hmall.sql

你可以在 Navicat 中直接打开 hmall.sql 文件并执行它。具体操作步骤如下:

  1. 打开 Navicat,连接到你运行的 MySQL 容器。
  2. 在 Navicat 中选择你希望导入数据库的 MySQL 实例。
  3. 使用 Navicat 打开 hmall.sql 文件。
  4. 点击执行按钮,这样 SQL 文件中的所有命令将会执行,数据库将会根据 SQL 文件中的定义创建并填充数据。

使用卷(volumes)来持久化数据

如果你在容器中创建了数据库和数据表,并且没有使用卷(volumes)来持久化数据,那么当容器停止、删除或重新创建时,这些数据会丢失。因为容器的文件系统是临时的,只存在于容器的生命周期内。

为了防止数据丢失,你需要使用卷来持久化数据库的数据。你可以将容器中的数据库文件目录映射到宿主机上的目录,或者使用Docker卷来存储数据库数据,这样即使容器停止或删除,数据仍然会保存在宿主机或卷中。

示例:如何持久化数据库数据

假设你使用的是MySQL数据库,可以通过如下方式将数据库的数据保存在卷中:

docker run -d \-v mysql_data:/var/lib/mysql \--name mysql_container \-e MYSQL_ROOT_PASSWORD=my-secret-pw \mysql:latest

在上面的命令中:

  • -v mysql_data:/var/lib/mysql:这将创建一个名为 mysql_data 的卷,并将其挂载到容器的 /var/lib/mysql 目录,这个目录是MySQL存储数据的默认路径。
  • 这样即使容器停止或删除,数据库的数据也会被保存在 mysql_data 卷中,下一次启动容器时可以恢复这些数据。

如果你使用的是本地目录作为数据存储位置,可以这样做:

docker run -d \-v C:\path\to\host\mysql_data:/var/lib/mysql \--name mysql_container \-e MYSQL_ROOT_PASSWORD=my-secret-pw \mysql:latest

这样,即使容器被删除或停止,C:\path\to\host\mysql_data 目录中的数据仍然会被保留在主机上。

如果你没有手动挂载卷,但是docker在没有明确指定使用volumes的情况下,仍然会自动为某些容器创建一个卷,尤其是像MySQL这样的数据库容器。即使你没有显式地为容器创建卷,Docker会在容器启动时自动为MySQL等服务创建一个名为<容器ID>_data的匿名卷,用来持久化数据库的文件。例如下:

这个自动创建的卷通常位于Docker的内部管理目录(通常是Docker的默认数据目录),它会存储MySQL的数据库文件,即使你没有使用-v选项来指定一个挂载卷。这个匿名卷的作用是确保数据库在容器重启、停止或删除后仍能保留数据。

你可以查看这些卷:

  1. 列出所有卷: 你可以通过 docker volume ls 命令查看所有卷,包括自动生成的匿名卷。

    docker volume ls
    
  2. 查看卷的详细信息: 可以通过 docker volume inspect <卷名> 来查看卷的详细信息,包括它的存储路径。

    docker volume inspect <卷名>
    

如何避免自动卷?

如果你想要管理卷并显式地指定数据存储位置,最好是在启动容器时使用 -v 参数来挂载自定义的卷或主机目录。例如:

docker run -d -v /path/to/host/mysql_data:/var/lib/mysql --name mysql_container -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest

这样,你就可以明确控制数据库数据的位置,而不是依赖Docker自动创建的匿名卷。

http://www.dtcms.com/wzjs/92823.html

相关文章:

  • 网站开发时间国内能用的搜索引擎
  • 百度收录网站之后又怎么做百度账户安全中心
  • 做网站月入过万的经验网站关键字优化
  • 深圳短视频关键词搜索排名推广seo和sem的概念
  • wordpress 微信 权限免费seo工具大全
  • 办公空间设计案例ppt免费武汉seo排名优化
  • 鸡泽专业做网站免费软文发布平台有哪些
  • 济南建设网站制作整站优化关键词排名
  • 中山创海软件网站建设推广资源seo
  • 怎么做游戏平台网站郑州关键词网站优化排名
  • 网站建设流程域名申请高级搜索百度
  • 企业建设网站的作用台州专业关键词优化
  • 做详情页生成代码的网站seo狂人
  • 怎样做可以互动留言的网站市场营销策略有哪4种
  • 妹妹强迫我和她做网站哪里可以学seo课程
  • 郑州短视频运营360优化大师app
  • 找个做游戏的视频网站谷歌google地图
  • 网站做服装那个平台好一点谷歌排名推广
  • 自己做一个网页怎么做windows优化大师有毒吗
  • 铜山区建设局局网站周保春口碑营销理论
  • 网站建设 提成多少放心网站推广优化咨询
  • 票务网站策划书深圳疫情防控最新消息
  • 深圳做h5网站百度推广公司怎么代理到的
  • 代做设计网站好抖音seo运营模式
  • 企业网站设计布局方式网站建设服务
  • 建设银行ETC的网站是哪个百度网盘资源搜索入口
  • 国外优惠卷网站怎么做百度大数据查询
  • wordpress 中文tag学seo需要学什么专业
  • 美女做暖网站图片外链生成工具
  • 网站放自己服务器备案免费职业技能培训网站