도커 로컬 환경 사용자 지정 로컬 도메인(호스트 파일?)
저는 도커가 조금 생소하지만, 지금 꽤 오랫동안 이것을 검색하고 있습니다.
제 프로젝트의 대부분이 워드프레스 기반이기 때문에 저는 거의 항상 도커를 이 컨테이너와 함께 사용하고 있습니다: https://hub.docker.com/_/wordpress/ .
요점은 이 컨테이너를 실행할 때마다 로컬 호스트 도메인에서 실행된다는 것입니다.현재 제가 일하는 회사에서는 여전히 가상 머신을 사용하고 있습니다.여기에 사용자 정의 도메인과 해당 경로를 추가할 수 있는 경우 'homestead.yml' 파일이 있습니다.또한 호스트 파일에 이 정보를 추가하고 부랑자 프로비저닝을 실행해야 합니다.
도커를 사용하는 속도는 좋지만 사용자 지정 도메인을 사용하기 위해 이 Mac에서 가상 시스템을 사용하지 않습니다.예를 들어, 저는 'sunglass'라는 프로젝트에서 일하고 있는데, 제 로컬 환경을 위해 'sunglass.local'이라는 로컬 도메인을 만들고 싶습니다.하지만 작동이 안 되는 것 같아요
도커 합성 파일은 다음과 같습니다.
version: '3.1'
services:
wordpress:
depends_on:
- db
image: wordpress:latest
restart: unless-stopped
working_dir: /var/www/html
volumes:
- ./wp-content:/var/www/html/wp-content
# - /Users/username/dev/wordpress-foundation-boilerplate/wp-content:/var/www/html/wp-content
# - /Users/username/dev/docker-wp-demo/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
WORDPRESS_DB_NAME: database
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: p4ssw0rd!
WORDPRESS_TABLE_PREFIX: wp_
WORDPRESS_DEBUG: 1
WORDPRESS_CONFIG_EXTRA: | # Add config to wp-config.php
define('FS_METHOD', 'direct');
define('WP_DEBUG_LOG', true);
define( 'WP_DEBUG', true );
ports:
- 8000:80
- 443:443
networks:
- back
db:
image: mysql:5.7
restart: unless-stopped
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8080:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
networks:
back:
volumes:
db_data:
Gasmask를 사용하고 있습니다(호스트 파일 편집은 http://clockwise.ee/) 참조). 올바른 IP 주소로 사용할 도메인을 이미 추가했습니다.
내가 뭘 놓쳤는지 알아요?저는 이제 도메인 주소를 제 도커 합성 파일에 넣지 않았습니다.저는 'ports' 아래에 그것을 추가하려고 했지만 이것은 제 도커 합성 파일을 실행하지도 못했습니다.누군가 제가 뭘 잘못하고 있는지 알았으면 좋겠어요.
직장에서 우리는 dnsmasq를 사용하여 TLD에 요청을 전달합니다..docker로컬 호스트에 연결합니다.방법은 다음과 같습니다.
요구 사항: 홈브루 및 관리 액세스
회송.dockerTLD, 설치 및 구성Dnsmasq.
$ brew up && brew install dnsmasq
$ sudo mkdir -p /etc/resolver
$ echo 'nameserver 127.0.0.1' | sudo tee -a /etc/resolver/docker > /dev/null
$ echo 'address=/docker/127.0.0.1' | tee -a /usr/local/etc/dnsmasq.d/docker-tld.conf > /dev/null
$ sudo brew services start dnsmasq
참고: 재부팅 후 해결 프로그램이 작동하기 시작합니다.
수정/usr/local/etc/dnsmasq.conf
...
listen-address=127.0.0.1
...
conf-dir=/usr/local/etc/dnsmasq.d/,*.conf
DNS 서버 테스트
$ dig test.docker @127.0.0.1
; <<>> DiG 9.9.7-P3 <<>> test.docker @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40401
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;test.docker. IN A
;; ANSWER SECTION:
test.docker. 0 IN A 127.0.0.1
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Feb 08 16:24:12 CET 2018
;; MSG SIZE rcvd: 45
구성 테스트
; Make sure your DNS is still working.
$ ping -c 1 www.google.com
PING www.google.com (216.58.206.4): 56 data bytes
64 bytes from 216.58.206.4: icmp_seq=0 ttl=53 time=26.789 ms
--- www.google.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 26.789/26.789/26.789/0.000 ms
.docker TLD가 작동하는지 확인합니다.
$ ping -c 1 test.docker
PING test.docker (127.0.0.1): 56 data bytes
출처: 지나가는 호기심
언급URL : https://stackoverflow.com/questions/56506278/docker-local-environment-custom-local-domains-hosts-file
'source' 카테고리의 다른 글
| Powershell에서 Powershell 콘솔 창을 여는 방법 (0) | 2023.07.18 |
|---|---|
| Python의 "Private"(구현) 클래스 (0) | 2023.07.18 |
| 특정 URL을 열기 위해 브라우저로 의도 보내기 (0) | 2023.07.13 |
| MS Visual Studio: How to exclude certain Project Folders from publishing? (0) | 2023.07.13 |
| DDL 문은 항상 암묵적 커밋을 제공합니까? 아니면 암묵적 롤백을 제공할 수 있습니까? (0) | 2023.07.13 |