You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker镜像推送后无法查看及MariaDB容器IP查询技术问题

问题解决:获取MariaDB容器IP及镜像可见性说明

获取MariaDB容器IP的方法

方法1:通过docker inspect提取IP

如果已经启动了容器,可通过容器ID或名称直接查询内部IP:

# 获取最新启动容器的IP(适合刚执行完docker run的场景)
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q --latest)

如果启动容器时指定了名称(推荐):

# 启动时添加--name参数指定容器名
docker run --name mariadb-dump --publish 3306:3306 <some_repo_name>.azurecr.io/databasedump:7578

# 通过容器名查询IP
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mariadb-dump

方法2:无需IP,直接用容器名/localhost连接

  • 若Python代码和容器在同一Docker网络,可直接用容器名作为数据库主机地址(Docker内置DNS支持解析容器名),示例Python代码:
    import mysql.connector
    
    db_conn = mysql.connector.connect(
        host="mariadb-dump",
        user="your_username",
        password="your_password",
        database="your_database",
        port=3306
    )
    
  • 若Python代码运行在流水线主机环境,因为已经做了端口映射3306:3306,直接用localhost或流水线主机IP即可连接,无需容器内部IP。

镜像可见性问题的原因

  • 流水线的不同任务/不同流水线通常运行在隔离的环境(独立代理节点或临时容器),前一个任务推送的镜像仅存在于该任务的运行环境中,后续任务或其他流水线的环境是全新的,因此docker image ls无法看到之前的镜像。
  • 同一条流水线中docker pull和docker run无报错,是因为命令从Azure容器注册表(ACR)拉取了镜像,而非使用本地已存在的镜像,任务结束后环境可能被自动清理,导致后续无法查到镜像。

内容的提问来源于stack exchange,提问作者Ivajlo Iliev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:40:57