插件窝 干货文章 如何访问Docker里的server

如何访问Docker里的server

容器 Docker 端口 访问 971    来源:    2025-04-30

访问Docker容器内运行的服务器

要访问运行在Docker容器内的服务器(如Web服务器、数据库服务器等),有几种常见的方法,具体取决于你的需求和网络配置。

基本方法

1. 端口映射(最常用)

在运行容器时使用 -p 参数将容器端口映射到主机端口:

docker run -p 主机端口:容器端口 镜像名称

例如,如果容器内运行着监听80端口的Web服务器:

docker run -p 8080:80 nginx

然后可以通过 http://localhost:8080http://主机IP:8080 访问。

2. 直接使用容器IP

查找容器的IP地址:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称或ID

然后直接访问该IP和容器端口(确保网络允许)。

高级方法

3. 使用Docker网络

创建自定义网络并连接容器:

docker network create mynetwork
docker run --network=mynetwork --name myserver 镜像名称

然后其他容器可以通过容器名称访问这个服务器。

4. 使用主机网络

如果使用 --network=host,容器会直接使用主机网络:

docker run --network=host 镜像名称

这样容器内的服务会直接绑定到主机网络接口上。

常见服务访问示例

Web服务器(如Nginx, Apache)

docker run -p 8080:80 nginx

访问: http://localhost:8080

MySQL数据库

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql

连接: mysql -h 127.0.0.1 -P 3306 -u root -p

Redis

docker run -p 6379:6379 redis

连接: redis-cli -h 127.0.0.1 -p 6379

故障排查

如果无法访问,检查: 1. 容器是否正在运行: docker ps 2. 端口是否正确映射: docker port 容器名称 3. 容器内服务是否正常运行: docker logs 容器名称 4. 防火墙是否阻止了端口访问

希望这些方法能帮助你成功访问Docker容器内的服务器!