LoginSignup
1
0

More than 1 year has passed since last update.

docker内部から外部ネットワークへ接続できないようにしたい

Last updated at Posted at 2022-01-08

docker内部から外部ネットワークへの通信が発生することが望ましくないケースがあるときに使う備忘メモ

最初からネットワーク遮断する場合

最初からネットワーク遮断する場合はdocker起動時に--network=noneオプションを付ける方法が良いと思われる

ネットワークから遮断したDockerコンテナを立ち上げたい

--network=noneオプションを付ける
$ docker run -it --network=none ubuntu:18.04

## 上記の後、apt updateは失敗する(意図通り、外部ネットワークへ接続できないようにできている)
$ apt update -y
Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
...
W: Some index files failed to download. They have been ignored, or old ones used instead.
--network=noneオプションを付けない
$ docker run -it ubuntu:18.04

## 上記の後、apt updateは成功する
$ apt update -y
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
...
Fetched 24.0 MB in 7s (3525 kB/s)                                                                                                                                                                          
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.

途中からネットワーク遮断する場合

途中からネットワーク遮断する場合はdocker network disconnectを使う方法が良いと思われる

コンテナのネットワーク

docker network disconnect bridge ${CONTAINER_NAME}
# 普通に起動させると apt update -y が成功する
$ docker run -it --name ubuntu ubuntu:18.04 cat &
$ docker exec -it ubuntu bash
$ apt update -y
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
...
Fetched 24.0 MB in 7s (3525 kB/s)                                                                                                                                                                          
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.

# docker network disconnect すると、意図通り、外部ネットワークへ接続できないようになる
$ exit
$ docker network disconnect bridge ubuntu
$ docker exec -it ubuntu bash
$ apt update -y
Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
...
W: Some index files failed to download. They have been ignored, or old ones used instead.

尚、ネットワークに繋げるにはdocker network connectを使う

docker network connect bridge ${CONTAINER_NAME}

参考

ネットワークから遮断したDockerコンテナを立ち上げたい
Docker network 概論
docker network disconnectコマンドの使い方(実例付)
コンテナのネットワーク

コンテナを切断(disconnect)し、ネットワークからコンテナを取り外せます。切断にはネットワーク名とコンテナ名を指定します。あるいは、コンテナ ID も使えます。この例では、名前を指定する方が速いです。
$ docker network disconnect bridge networktest

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0