1. 볼륨 폴더 생성
mkdir -p /home/ubuntu/volumes/mariadb/data
cd /home/ubuntu/volumes/mariadb
2. docker compose 파일 생성
vi docker-compose.yml
version: '3.1'
networks:
db-connection:
driver: bridge
services:
db:
container_name: db
image: mariadb:10.8.2-rc
restart: always
environment:
MARIADB_ROOT_PASSWORD: 1234
ports:
- 3306:3306
volumes:
- /home/ubuntu/volumes/mariadb/data:/var/lib/mysql
networks:
- db-connection
- container_name: 컨테이너 이름
- image: 사용할 도커 이미지
- restart: 재시작 여부, always = 항상
- environment: 환경 변수 설정
MARIADB_ROOT_PASSWORD: 1234 기본 비밀번호
- ports: 사용 포트
- volumes: 볼륨 경로
3. 실행 후 설정하기
docker-compose up -d
권한 문제가 발생시
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker exec -it db bash
mysql_secure_installation
위 명령어를 입력하면 아래와 같은 질문이 나옴
Enter current password for root (enter for none): 초기 비밀번호 입력
Switch to unix_socket authentication [Y/n] n : 루트 패스워드 접속을 위해 n을 입력
Change the root password? [Y/n] y : 루트 패스워드를 바꿀 것인가?
Remove anonymous users? [Y/n] y : 익명 유저를 삭제할 것인가
Disallow root login remotely? [Y/n] y : 외부 접속을 허용할 것인가
Remove test database and access to it? [Y/n] y : 테스트 디비를 삭제할 것인가
Reload privilege tables now? [Y/n] y : 지금 바로 적용할 것인가
4. 외부 접속 설정
1) 유저 생성 & 권한 설정
create database [my database name] character set utf8mb4 collate utf8mb4_general_ci;
use mysql;
create user '[user name]'@'%' identified by '[password]';
grant all privileges on [my database name].* to [user name]@'%';
flush privileges;
2) 설정 파일 수정
vi /etc/mysql/mariadb.conf.d/50-server.cnf
# bind-address를 주석처리
#bind-address = 127.0.0.1
service mysql restart
service mariadb restart
3) 포트 설정
자신이 사용하는 포트를 열어준다.
우분투 20.04를 사용할때 포트가 안열리면 해결방법
참조 https://www.vultr.com/docs/how-to-configure-uncomplicated-firewall-ufw-on-ubuntu-20-04/
sudo apt-get install ufw
sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw allow mysql
현재 포트 상태를 보려면
sudo ufw status