docker swarm中 如何赶走一台机器上的全部容器 而不是删除他们 让他们漂流到别的机器上
时间: 2023-06-01 14:03:27 浏览: 60
可以通过以下步骤在Docker Swarm中赶走一台机器上的全部容器:
1. 使用`docker node ls`命令查看所有节点的状态和ID。
2. 找到要赶走的节点的ID。
3. 使用`docker node update --availability drain <node-id>`命令将节点设置为排空状态。这将使节点上的所有容器停止并迁移到其他节点。
4. 等待一段时间,直到所有容器都迁移到其他节点。
5. 使用`docker node update --availability active <node-id>`命令将节点设置为活动状态。这将允许该节点再次接受容器。
注意:在执行此操作之前,请确保您的Swarm集群中有足够的节点可以承载容器。
相关问题
docker容器复制到另一台机器
要将Docker容器复制到另一台机器上,可以使用以下步骤:
1. 在源机器上停止该容器并将其导出为tar文件:
```
docker stop [容器名称/容器ID]
docker export [容器名称/容器ID] > [容器名称/容器ID].tar
```
2. 通过scp将导出的tar文件复制到目标机器上:
```
scp [容器名称/容器ID].tar [目标机器的用户名]@[目标机器的IP地址]:[目标路径]
```
3. 在目标机器上导入该容器:
```
docker import [容器名称/容器ID].tar [新容器名称]
```
4. 启动新容器:
```
docker run -it [新容器名称]
```
注意:在复制容器时,源机器和目标机器的操作系统和Docker版本应该尽量相同,以确保容器的兼容性。
怎么把另外一个docker上的容器拷贝到新机子
你可以使用 Docker 的导入和导出命令来将容器导出到一个 tar 文件中,然后将这个文件传输到新机器上,并使用 Docker 的导入命令将容器导入新机器上。
具体操作步骤如下:
1. 在旧机器上使用 `docker export` 命令将容器导出到一个 tar 文件中:
```
docker export <container_id> > container.tar
```
2. 将导出的 tar 文件拷贝到新机器上。
3. 在新机器上使用 `docker import` 命令将容器导入:
```
cat container.tar | docker import - <image_name>
```
这里的 `image_name` 是新容器的名称。
注意事项:
- 导出的容器不包括容器的状态,只包括文件系统和元数据。
- 导出的容器是一个镜像文件,需要使用 `docker import` 命令将其导入为一个容器。
- 导入的容器会有一个新的 ID,与原来的容器不同。
- 如果导出的容器使用了数据卷,需要将数据卷也一并拷贝到新机器上,并在导入容器时使用 `-v` 参数挂载数据卷。