4. 우분투 컨테이너 한글, nginx 환경설정
1. 개요
수강 중인 과목에서 네트워크 및 도커에 익숙해지기 위해 ubuntu 컨테이너에 nginx 설치 후 본인의 학번, 이름을 띄우는 과제가 있었다. 이를 수행하기 위한 방법에 대해 작성하고자 한다.
과제의 요구사항은 다음과 같다.
- 컨테이너 내에서 한글 입력 허용
- 컨테이너 내에서 nginx 서버 설치
- nginx 의 index.html 편집
- 와이어 샤크를 통한 패킷 캡처
** 컨테이너 생성시 아무것도 없는 상태이므로 반드시 apt update 후 설치 **
2. 환경 설정
먼저 한글 설정을 해야되는데 일반적으로 생성한 컨테이너는 로케일 설정으로 인해 한글 입력이 불가능하다.
현재 설정을 확인하려면 locale 명령어를 검색하면 된다.
각 로케일 변수에 대한 설명은 아래 포스트를 참조하길 바란다.
wiki.kldp.org/HOWTO/mini/html/Locales/Locales-2.html
Locales mini-HOWTO: 도대체 로케일(locale)이란 무엇인가?
문자 정의, 대문자, 소문자,... 이들은 toupper, tolower, islower, isdigit 등의 함수에 사용된다.
wiki.kldp.org
중요한 점은 우리가 로케일 설정을 utf-8로 설정해야한다는 점이다.
2가지 방법이 있는데,
1) 컨테이너 내에서 로케일 패키지를 설치
2) 컨테이너 생성시(혹은 도커 이미지 파일) 로케일 설정
가장 간단한 방법은 컨테이너 생성시 옵션을 통해 설정해주는 방식이다.
' -e LC_ALL=C.UTF-8 '을 넣어주면 된다.
필자는 아래 명령어를 이용해 컨테이너를 생성했다.
Docker run -itd --name hello -e LC_ALL=C.UTF-8 -p 50243:80 ubuntu:18.04 /bin/bash
(옵션 설명)
- i t : 커맨드라인처럼 명령어 입력을 위해 필요한 옵션(interactive)
- d : 백그라운드. 이후 컨테이너에서 빠져나올때 컨테이너가 종료되지 않도록 설정. (단. attach 접속시 무조건 종료. exec로 접속)
-- name : 도커의 이름 설정. 도커를 생성하면 id가 생기는데, id는 외우기 어렵고 길으므로 간단하게 이름을 설정해 구분 및 제어
- e : 환경설정. 이후 도커 파일에도 덮어짐
- p : 포트 설정 host:container 식으로 설정됨
/bin/bash : 배시
아직 컨테이너 내에서 패키지 설치를 통해 설정하는 방식은 잘 모르겠다.
아래 부터는 로케일에 대한 설명이므로 궁금하지 않은 사람은 생략하면된다.
-----------------------------------------------------------------------------------------------------------------------------------
로케일이란?
' 사용자의 언어, 국가 뿐 아니라 사용자 인터페이스에서 사용자가 선호하는 사항을 지정한 매개 변수의 모임 '
로케일을 통해 프로그램 실행 및 수행 등에서 어떤 언어로 입출력할지 정해주는 내용
현재 로케일 정보 확인
locale -a 를 통해 가능한 로케일 목록을 확인
원하는 로케일을 생성하기 위해서는 로케일 설치 후 -gen 이용
apt install locales
locale-gen <원하는 인코딩>
-----------------------------------------------------------------------------------------------------------------------------------
3.
[참고]
moniwiki
wiki.kldp.org
도커(Docker) 컨테이너 로케일 설정: 데비안(Debian), 우분투(Ubuntu) 이미지에서 한글 입력 문제
도커 우분투, 데비안 이미지에서는 기본적으로 한글 입력을 지원하지 않습니다. 한글을 입력하기 위해서는 로케일 설정을 UTF-8로 지정할 필요가 있습니다. 이 글에서는 로케일 개념과 함께 도커
www.44bits.io