Run The Bridge

config을 사용해서 mysql port 변경하기 본문

Cloud/docker

config을 사용해서 mysql port 변경하기

anfrhrl5555 2021. 7. 26. 14:22
728x90
반응형

지난번에 사용한 python과 mysql 연동할 때 쓴 mysqld.cnf 파일을 가져와야 한다.

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
port = 3000

 

secret은 다음과 같은 명령어를 통해 생성했다.

echo 1q2w3e4r | docker secret create my_mysql_password -
docker secret inspect my_mysql_password

 

mysql를 사용하려면 비밀번호를 설정해주어야 하기 때문에 secret으로 사전에 생성해둔 비밀번호를 설정해주고,

'--config source' 옵션으로 mysql의 설정파일 위치, 즉 '/etc/mysql/mysql.conf.d/mysqld.cnf' 을 target으로 준다.

docker service create --name mysql5.7 --replicas 1 --secret source=my_mysql_password,target=mysql_root_password --secret source=my_mysql_password,target=mysql_password -e MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_password" -e MYSQL_PASSWORD_FILE="/run/secrets/mysql_password" --config source=mysqld-config,target=/etc/mysql/mysql.conf.d/mysqld.cnf -p 3000:3000 mysql:5.7

 

하지만 실행할 때 마다 자꾸 오류가나는데 구글검색을 해보니까,

https://github.com/moby/moby/issues/31564

 

"docker stack deploy">"rpc error: code = 3 desc = name must be valid as a DNS name component" · Issue #31564 · moby/moby

[root@master busybox]# docker stack deploy -c docker-compose.yml test Creating service test_busybox1.24 Error response from daemon: rpc error: code = 3 desc = name must be valid as a DNS name compo...

github.com

stack 이름에 '.' 이나 '_' 가 들어가면 오류가 난다고한다.

docker service create --name mysqltest --replicas 1 --secret source=my_mysql_password,target=mysql_root_password --secret source=my_mysql_password,target=mysql_password -e MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_password" -e MYSQL_PASSWORD_FILE="/run/secrets/mysql_password" --config source=mysqld-config,target=/etc/mysql/mysql.conf.d/mysqld.cnf -p 3000:3000 mysql:5.7

그래서 이름을 mysqltest로 바꾸고 재시작해보았다. 그러니 잘 동작하였다.

이제 포트가 3000번으로 잘 올라왔는지 확인하여야 한다.

 

docker ps -a  # 해당 컨테이너 위치 확인
docker logs [container ID]  # log 출력

포트가 3000으로 매우 잘 올라왔다.

728x90
반응형

'Cloud > docker' 카테고리의 다른 글

python/Flask와 DB를 이용한 Docker-compose.yml  (0) 2021.08.04
docker 6일차  (0) 2021.07.27
docker 5일차  (0) 2021.07.23
dockerfile을 이용하여 DB와 python 연동하기  (0) 2021.07.23
docker 4일차  (0) 2021.07.22
Comments