Several problems were discovered during the use of Docker. Network requests in Docker often failed, such as npm install and bundle install operations. Or, as an intermediate layer, the process of obtaining API data in the application often resulted in timeouts. Therefore, we began to explore the network mechanism of Docker to solve the problem of slow network requests. 1. Docker network mode 1. none When configured as none, the Docker container network cannot have input or output and is isolated from the world. 2. Bridge 3. Host 4. Container 2. Docker DNS resolution The Docker container is essentially a Linux, so the DNS resolution method is the same as Linux, and the priority is to find the /etc/hosts file. Domain names such as localhost are written in this file, for example: 127.0.0.1 localhost If the docker container links other containers, there will be an additional linked domain name, for example: docker run --name app --link app-redis:redis -d ubuntu There will be more in hosts 172.17.0.3 app-redis 038c8388e4a1 After finding the /etc/hosts file, then the /etc/resolv.conf file: domain local nameserver 192.168.65.1 nameserver 192.168.65.10 3. Solve the problem of slow network requests in docker containers After packet capture and other analysis, it was found that the slow network request mainly occurred in DNS resolution, so DNS optimization was mainly adopted: If the request is for your own intranet API, you can directly modify the /etc/hosts file. If the request is for an external network, you can change the nameserver in /etc/resolv.conf. The docker container is definitely not implemented directly by modifying files, but can be implemented through the run command: # Add host docker run --name app --add-host='api.embbnux.com:10.98.10.98' -d ubuntu # Specify DNS server docker run --name app --dns=223.5.5.5 --dns=8.8.8.8 -d ubuntu In this way, the DNS resolution time in the Docker container is accelerated. The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: CentOS 6.4 MySQL 5.7.18 installation and configuration method graphic tutorial
>>: React implements a highly adaptive virtual list
This article example shares the specific code of ...
I am a beginner in SQL and thought that the insta...
I am currently developing a new app project. This...
First of all, we need to know what a state manage...
This article shares the specific code of JavaScri...
Table of contents 1. Pull the image 2. Run the im...
1. Technical points involved vite version vue3 ts...
Add the following code to the CSS style of the el...
Organize the MySQL 5.5 installation and configura...
Table of contents The principle and function of l...
My original intention was to encapsulate the $not...
Table of contents 1. Pull the image 2. Create a l...
Nginx is used as the server, Mongo is used as the...
Table of contents Overview What is lazy loading? ...
Table of contents Why is IN slow? Which is faster...