How to change the network of a running docker container?

后端 未结 2 928
闹比i
闹比i 2021-02-18 17:46

I\'m trying to update the network of a running docker container.

Note: I didn\'t attach any network while running the container.

[root@stagingrbt ~]# doc         


        
相关标签:
2条回答
  • 2021-02-18 18:02

    If you want to circumvent the command line and change the network of your docker container via portainer, you can do so. I'm not sure exactly which is the best way of doing this, but the steps below worked for me (changing a container that was running on the bridge network by default into the host network):

    1. In the Container list, click on the container name (emby, in my case)
    2. Stop the container
    3. Click on Duplicate/Edit
    4. Scroll down to Advanced container settings and select the Network tab
    5. Change the Network to host (or whatever you want to set it to)
    6. Click on Deploy the container right above.
    7. Confirm that you want to replace the old container (or deploy it under a new name if you want to be on the save side and keep the old one).
    8. Done!
    0 讨论(0)
  • 2021-02-18 18:08

    When you start a container, such as:

    docker run -d --name alpine1 alpine
    

    It is by default connected to the bridge network, check it with:

    docker container inspect alpine1
    

    If you try to connect it to host network with:

    docker network connect host alpine1
    

    you obtain an error:

    Error response from daemon: container cannot be disconnected from host network or connected to host network

    you have to delete the container and run it again on the host network:

    docker stop alpine1
    docker rm alpine1
    docker run -d --network host --name alpine1 alpine
    

    This limitation is not present on bridge networks. You can start a container:

    docker run -d --name alpine2 alpine
    

    disconnect it from the bridge network and reconnect it to another bridge network.

    docker network disconnect bridge alpine2
    docker network create --driver bridge alpine-net
    docker network connect alpine-net alpine2
    

    Note also that according to the documentation:

    The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server.

    0 讨论(0)
提交回复
热议问题