일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Podman
- DSEC
- 뚝섬유원지
- 맛집
- 소모임
- zabbix
- 중식
- 2021
- 달리기
- 오답노트
- 10km
- 유산소
- docker
- 하체
- 대전
- 한강
- Run The Bridge
- 대구
- Linux
- 힐링
- Shell
- 정보처리기사
- 자전거
- GitHub
- 성수대교
- Python
- Grafana
- 건대입구역
- 러닝
- Kubernetes
- Today
- Total
Run The Bridge
config을 사용해서 mysql port 변경하기 본문
지난번에 사용한 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으로 매우 잘 올라왔다.
'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 |