❓ What`s the problem?
고객사에서 “172.17.X.X 대역은 당사에서 사용할 예정이니 사용중인 docker network 대역 변경해주세요” 라는 요청을 받았습니다.
추후 같은 요청이 오게되는 경우를 대비하여 해당 문서를 작성합니다!
👉 How do solve it?
해결법에 앞서, docker는 기본적으로 3가지의 network(bridge, host, none)을 사용합니다. 그 중 bridge의
default ip대역이 172.17.0.0/16 으로 설정되어 있습니다. 그래서 해당 ip대역을 다른곳에서 사용이 필요할 경우 변경을 해주어야 합니다. bridge의 대역을 바꾸는법은 보통 2가지를 설명하지만 이 글에서는 daemon.json을 변경하는 방법을 소개 하겠습니다.
지금부터, 하나씩 해결 방법을 확인해 보겠습니다.
도커 데몬 시작 옵션을 변경하는 방법은 두 가지가 있습니다. 첫 번째는 도커 데몬 서비스의 시작
옵션을 직접 변경하는 것이고, 두 번째는 daemon.json을 설정해 도커 데몬이 설정 파일을 읽게
하는 것입니다. 전자는 운영체제마다 사용하는 방법이 조금씩 다르지만 후자는 기본적으로 /etc/
docker/daemon.json 파일을 사용하므로 대부분의 리눅스 운영체제에서 동일하게 사용할 수 있습
니다. 각 os별로 아래의 경로의 daemon.json 파일 여부를 확인하고 없을경우 생성을 해줍니다.
1번에서 daemon.json 파일을 확인(혹은 생성)을 하셨다면 해당 파일을 열어 아래와 같이
bip(bridgeip) 설정값을 넣어주시면 됩니다.
{
"bip": "192.168.254.101/24" //원하는 ip 대역
}
만약 다른 설정값이 있다면, JSON 형태에 맞게 콤마(’,’)로 이어서 작성해주시면 됩니다.
daemon.json의 설정값 작성이 끝나면 도커 daemon을 재시작 해야합니다.
아래의 명령어로 도커 daemon을 재시작 해주세요!
linux: sudo systemctl restart docker
osx: killall Docker && open /Applications/Docker.app
windows(powershell): Restart-Service docker
⚠️ 도커 daemon을 restart 할 경우 모든 컨테이너가 종료 됩니다! (restart 옵션을 안주었으면 다시 컨테이너를 띄우셔야 합니다!)
그 후 bridge 네트워크를 확인해보시면 변경된것을 확인할 수 있습니다!

⚠️ 만약 restart시 아래와 같은 에러 문구가 나오면서, restart가 되지 않는다면 설정파일에 문제(사용중인 ip대역 설정, 유효 하지 않는 ip대역 설정, 오타 등..)가 있는것이므로 다시 확인 바랍니다!
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.