Docker

[Docker]Mysql Docker container 생성 (f. Error "server gave HTTP response to HTTPS client")

Edyo 2024. 1. 9. 18:05

Mysql 이미지 가져오기

- Mysql public 이미지 가져오기

버전 입력없이 mysql 만 입력하면 최신버전으로 가져옴

docker pull mysql:{version}
ex) docker pull mysql:5.7.36

 

 

- Mysql private registry/서버에서 이미지 가져오기

feat. Error "server gave HTTP response to HTTPS client"

 

특정 주소에 등록되어있는 이미지를 가져올 때, 위 문구와 같은 에러가 나는 경우

insecure-registries 항목에 이용할 이미지가 등록되어있는 특정 주소 추가

 

- Docker Desktop 앱 이용

  • Docker Desktop > Settings > Docker Engine 메뉴
"insecure-registries": [ "받아올 주소:port", "199.144.133.122:5000" ]

 

설정 후 도커 재시작

 

- Ubuntu 터미널 이용

  • /etc/docker > daemon.json 파일 추가
"insecure-registries": [ "받아올 주소:port", "199.144.133.122:5000" ]

 

설정 후 도커 재시작

 

 

 

- 도커 재시작 후 이미지 pull

docker pull 주소주소/이미지이름
ex) docker pull 199.144.133.122:5000/mysql1234

 


Docker-compose.yml 작성

version: "3"

services:
	mysql:
	    image: 199.144.133.122:5000/mysql1234
	    container_name: mysql
	    environment:
	      - MYSQL_DATABASE=database_name
	      - MYSQL_ROOT_PASSWORD=root_password
	      - MYSQL_USER=user_name
	      - MYSQL_PASSWORD=user_password
	    ports:
	      - "3306:3306"

Mysql 컨테이너 실행

docker-compose.yml 파일이 존재하는 디렉토리 위치에서 아래 명령어 실행

docker-compose up -d mysql

Mysql 접속

Docker Desktop 이용

  • containers 목록에서 mysql 클릭하여 터미널 탭을 이용

 

  • Mysql 접속
mysql -u root -p
## 패스워드 입력

 

터미널 이용

  • Mysql docker container로 접속
docker exec -it {컨테이너명} bash
ex) docker exec -it mysql bash

 

  • Mysql 접속
mysql -u root -p
## 패스워드 입력