docker目前不推荐使用--link的方式进行容器互联,而是建议建立同一自定义网络下的容器互联的方式
时间: 2024-05-26 16:12:17 浏览: 87
是的,Docker目前的官方文档也推荐使用同一自定义网络下的容器互联方式,而不是使用--link的方式。同一自定义网络下的容器互联方式更加灵活,可以更好地控制容器之间的连接,同时也更加安全。使用同一自定义网络下的容器互联方式可以通过创建一个新的自定义网络,然后将需要互联的容器加入到该网络中,这样这些容器就可以通过它们在该网络中的别名来相互访问了。
相关问题
普通用户可以特权方式启动docker容器吗?docker run --privileged
默认情况下,只有 root 用户才能使用 `--privileged` 参数启动 Docker 容器,因为该参数会让容器拥有访问宿主机系统资源的特权。如果使用普通用户启动容器,会提示权限不足的错误。
不过,您可以通过配置 Docker 守护进程来允许普通用户启动特权容器。具体来说,您需要将普通用户添加到 `docker` 用户组中,并将 Docker 守护进程配置为允许该用户组的成员使用特权容器。
具体操作步骤如下:
1. 将普通用户添加到 `docker` 用户组中:
```
sudo usermod -aG docker your_username
```
其中,`your_username` 是您要添加到 `docker` 用户组中的用户名。
2. 编辑 Docker 配置文件 `/etc/docker/daemon.json`,配置容器运行时的默认参数:
```
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"runcmd": [
"/usr/sbin/sysctl -w kernel.perf_event_paranoid=-1"
],
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 10,
"iptables": true,
"ipv6": true,
"userns-remap": "default",
"experimental": true,
"features": {
"buildkit": true
},
"group": "docker"
}
```
其中,`group` 参数设置为 `docker`,表示允许属于 `docker` 用户组的成员使用 Docker。
3. 重新启动 Docker 守护进程:
```
sudo systemctl daemon-reload
sudo systemctl restart docker
```
4. 使用普通用户身份启动特权容器:
```
docker run --privileged -it bcc-image
```
现在,普通用户已经可以使用特权容器了。需要注意的是,使用特权容器会增加安全风险,需要谨慎使用。
怎么查看正在运行的docker容器是使用什么网络连接方式?
要在 Docker 中查看正在运行的容器使用的网络连接方式,可以分别从两个角度考虑:查看容器的网络配置以及查看网络的类型。
1. **查看容器的网络配置**:
对于单个容器,你可以使用 `docker inspect` 命令获取详细信息,特别是关于网络的部分。例如:
```
docker inspect -f '{{range $network := .NetworkSettings.Networks}}{{.Name}}: {{.IPAddress}} ({{.Gateway}}), {{end}}' <container_id_or_name>
```
这将显示容器连接到每个网络的 IP 地址和网关。
2. **查看网络类型**:
如果你想了解容器所连接的网络是如何创建的,比如是桥接网络、host网络还是用户自定义网络,可以使用 `docker network inspect` 命令。例如:
```
docker network inspect <network_name>
```
或者如果你想知道当前活动的容器连接了哪些网络,可以用 `docker ps -a --filter "status=running"` 查看,并结合 `docker inspect` 来分析它们的网络配置。