반응형
3306 이외의 포트를 사용하도록 mariadb docker-compose 파일을 설정하려면 어떻게 해야 합니까?
도커 컴포지트 파일을 사용하여 도커 컨테이너에서 실행할 때 mariadb가 3306 이외의 포트를 사용하도록 할 수 없습니다.
저는 이미 mariadb/docker 문서를 읽고 인터넷을 검색하여 제 자신의 실험을 했습니다.
- 도킹 스테이션 파일:
version: '3.1'
services:
db:
image: mariadb
restart: always
environment:
- MYSQL_ROOT_PASSWORD=mypassword
- MYSQL_TCP_PORT=33030
- MYSQL_UNIX_PORT=33020
ports:
- "33020:33020"
- 도커 파일:
FROM: mariadb: 10.3.14
COPY mydbscript.sql /docker-entrypoint-initdb.d/
EXPOSE 33020
CMD ["mysqld"]
포트 33020은 사용하지 않습니다.아직 포트 3306을 사용하고 있습니다.런타임에 도커 컴포지트 파일을 통해 포트를 동적으로 전달하려면 어떻게 해야 합니까?
기본값을 교체해야 합니다.my.cnf
MariaDB/MySQL의 커스텀포트를 지정하려면 , 다음의 순서를 실행합니다.
cd /where/your/docker-compose.yml/located
docker run -it mariadb cat /etc/mysql/my.cnf > my.cnf
# use any text editor your like to open my.cnf, search for "port = 3306"
# and replace it to the port you like to have.
docker-compose.yml 을 다음과 같이 설정합니다.
version: '3.1'
services:
db:
image: mariadb
restart: always
volumes:
- type: bind
source: ./my.cnf
target: /etc/mysql/my.cnf
environment:
- MYSQL_ROOT_PASSWORD=mypassword
# add your other configurations here
컨테이너 이미지가 정적으로 바인딩되어 있는 경우:3306
이 설정을 변경하려면 새 이미지를 작성하고 데이터베이스를 다른 곳에서 실행하도록 구성해야 합니다.
그러나 도커에서는 다른 포트로 매핑(게시)할 수 있습니다.:33020
.
올바른 방법은 다음과 같습니다.
- 도커 매개의
MYSQL_TCP_PORT=3306
- 도커 매개의
ports: - "33020:3306"
- 도커 파일
EXPOSE 3306
(표준)
용기(내부)는 올바르게 참조합니다.:3306
단, 외부(호스트로부터)에 데이터베이스가 공개됩니다.:33020
.
NB 도커 구성(네트워크) 내에서 다른 컨테이너가 포트의 데이터베이스를 계속 참조해야 합니다.:3306
.
언급URL : https://stackoverflow.com/questions/56212960/how-to-configure-mariadb-docker-compose-file-to-use-other-port-than-3306
반응형
'source' 카테고리의 다른 글
System.out.println을 사용하지 않는 한 끝이 없는 것처럼 보이는 루프가 종료됩니다. (0) | 2022.12.25 |
---|---|
Django에서 날짜 범위별로 쿼리 개체를 필터링하려면 어떻게 해야 합니까? (0) | 2022.12.25 |
변수 === 정의되지 않은 변수 대 변수 유형 === "변수" (0) | 2022.12.25 |
SQL 쿼리 문자열을 자리 표시자로 바꾸기 (0) | 2022.12.25 |
코드 저장소를 사용할 때 리소스의 상대 경로를 참조하는 방법 (0) | 2022.12.25 |