나는 지난 2 일 동안 docker와 씨름 해 왔으며 공식 docker 웹 사이트와 stackoverflow에서 수많은 페이지를 읽었지만 읽기만해도 혼란스러워졌습니다. docker-compose.yml 파일의 구문이 모든 버전마다 변경 될뿐만 아니라,Docker는 기본적으로 서비스를 제공하지 않습니다.
다음 구성을 사용하여 웹 사이트를 실행할 수 있었지만 몇 가지 중요한 문제가 있습니다.
예상대로 서비스가 제공되지 않는 것 같습니다.
docker (docker-compose up)를 다시 시작할 때마다 IP 주소가 MySQL 컨테이너를 변경하지 않았는지 확인해야합니다. 코드가 바뀌면 코드를 변경하여 올바른 서버에 연결해야합니다. 이로 인해 사용할 수없는 환경이 만들어집니다.
마지막으로 연결 (172.18.0.x)에 대한 일부 모호한 IP 주소를 선택하여 MySQL을 작동시킬 수 있다는 것을 알았 으면 내 다음 문제는 PHP 컨테이너에서도 사용할 수있는 memcached입니다. 여기서 IP 주소를 불명확 한 docker IP로 바꾸는 것은 GIT 저장소에서도 잘 보이지 않을 것입니다.
서비스를 추가 할 때마다 동일한 애매한 점을 처리하는 대신이 문제를 보편적으로 해결할 수있는 방법이 있습니까?
version: "3.3"
services:
memcached:
image: memcached:alpine
container_name: gok_mamcached
ports:
- "11211:11211"
expose:
- 11211
mysql:
image: mysql:5.7
container_name: gok_mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=database
- MYSQL_USER=user
- MYSQL_PASSWORD=password
ports:
- "3306:3306"
expose:
- 3306
restart: always
php:
image: wildscamp/php
container_name: gok_php
environment:
- TIMEZONE=Asia/Hong_Kong
ports:
- "80:80"
- "443:443"
working_dir: /var/www/html
links:
- mysql
restart: always
날이 악몽 나가 도와주세요 :
이
내 고정 표시기 - compose.yml입니다.감사합니다.
같은 호스트 이름을 사용할 수 없다고 생각합니까? –
글쎄요, 그들은 동일한 호스트 이름을 사용할 수 없습니다. 그러나 링크를 할 때 컨테이너는 컨테이너 ID로 컨테이너/etc/hosts에 라인을 추가하여 통신 할 수있게합니다. – Sergiu