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
1. In the previous chapter, we learned that we ca...
Transactional Characteristics 1. Atomicity: After...
Table of contents 1 The role of Apache 2 Apache I...
1. Command Introduction The tac (reverse order of...
At first I thought it was a speed issue, so I late...
It is very common to highlight images on a page. ...
There are two ways to disable form submission in ...
Table of contents Preface 1. Basic usage of liste...
I recently used nginx in a project, and used Java...
What is it? Spring Boot is a sub-project of the S...
Demand: This demand is an urgent need! In a subwa...
view: Views in MySQL have many similarities with ...
This article summarizes various ways to implement...
Step 1: View the current kernel rew $ uname -a Li...
This article example shares the specific code of ...