hchang   10 Aug 2022

DOCKER에서 한글쓰기



기본적으로 docker는 bash창 이용 시 한글 입력이 되지 않고 마구마구 깨져서 나오게 된다. 한글 입력을 하기 위해서는 locales 설정을 해줘야 한다.  

  python3을 쓰면서 한글로 적어 놓은 주석들이 많은데 docker에 한글 설정을 해주지 않으면, python 프로그램을 실행 시켰을 때 encoding error가 발생하게 된다.  

  Install locales 당연히 Docker에 접속을 한 상태라고 생각하지만 혹시 모르니 일단 docker에 접속을 한다.   $ apt-get install locales 접속한 docker에서 locales를 설치해 준다.       Setting

  1. Save environment values export LANGUAGE=ko_KR.UTF-8 export LANG=ko_KR.UTF-8   ~/.bashrc 파일 안에 위의 두 환경 변수를 추가한다.   파일안에 바로 입력하지 않고 파일로 생성해서 넣어도 상관없으나 이 말이 무슨 말인지 모르겠다면, 그냥 파일을 바로 수정하는 것을 추천한다.   $ source ~/.bashrc

수정한 파일을 적용 시킨다.

  1. Set locales $ locale-gen ko_KR ko_KR.UTF-8$ update-locale LANG=ko_KR.UTF-8 위의 두 명령어로 셋팅을 해주고 locales를 실행한다. $ dpkg-reconfigure locales 명령어를 실행하면 다음과 같이 안내문구가 나오는데 아래 번호에서 ko_KR.UTF-8 을 찾으면 된다. 290번에 있었다.   생성할 로케일 목록에 290번을 입력하고, 시스템 환경의 기본 로케일에 3을 입력해주면, Generation complete 문구가 뜨면서 설정완료된다.  

이제 한글이 제대로 출력되는 것과 python이 제대로 실행되는 것을 확인 할 수 있다.  

mysql 한글 인코딩 해결 방법 MySQL 컨테이너 구동

docker exec -it <컨테이너 명=""> /bin/bash

컨테이너 내부 접속 apt-get update, apt-get install vim (vi editor 없을 시)

vim /etc/mysql/my.cnf 파일에 아래의 내용 추가

[client] default-character-set=utf8

[mysql] default-character-set=utf8

[mysqld] collation-server = utf8_unicode_ci init-connect=’SET NAMES utf8’ character-set-server = utf8 database 또는 table encoding type 변경 방법 show variables like ‘c%’; 문자셋 항목을 조회한다.

database 생성 시 character set을 utf-8 로 설정하는 방법 CREATE DATABASE DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 생성된 database의 character set을 utf-8 로 변경하는 방법 ALTER DATABASE DEFAULT CHARACTER SET utf8 ; 테이블의 character set을 utf-8 로 변경하는 방법 alter table convert to character set utf8; flask를 이용하여 웹 서버에서 DB 불러올 때 한글 깨짐 현상 방지 utf8 인코딩 깨짐 현상 방지

app.config[‘JSON_AS_ASCII’] = False 선언하여 ascii 인코딩 출력 방지

출처: https://proni.tistory.com/entry/🐳-Docker-한글-설정-한글-깨짐-해결하기 [Programmer Leni 🤪:티스토리]