Docker) 설정

나 안해·2023년 3월 2일
0

Docker

목록 보기
1/4
post-thumbnail

Docker

1. 설정 과정

db -> app-> middleware

컴포지트

여러개의 컨테이너가 필요할 때 사용

  • yaml

1.1 설치


2. 하이디 설치

  • 인스톨러 -> mydb

3. 대소문자 및 한글 설정

3.1 대소문자 구분하지 않는 설정

  • 도커로 DB 컨테이너 접속
    - docker ps -a
    - docker start mysql
    - docker ps
    - docker exec -it 이미지명 bash

  • use 테이블명

  • show variables like 'lower_case_table_names';
    값이 0이면 대소문자 구분, 1이면 구분x

    show variavles like 'lower_case_table_names'; 실행 결과

    Variable_nameValue
    lower_case_table_names0
  • exit

  • yum install -y vim

  • 컨테이너 다시 시작

  • 유저명@컨테이너_id:/# ls

  • 유저명@컨테이너_id:/# cd etc

  • 유저명@컨테이너_id:/etc# ls

  • 유저명@컨테이너_id:/etc# cd 컨테이너명

  • 유저명@컨테이너_id:/etc/이름#/ls

  • 유저명@컨테이너_id:/etc/이름#/vim my.cnf

  • i 입력으로 insert 전환

  • 추가

[db명d]
lower_case_table_names = 1
esc
:wq!
  • docker restart 컨테이너명

3.2 한글 설정

위의 과정에서

[client]

default-character-set = utf8mb4

[컨테이너명(나는 mysql)]

default-character-set = utf8mb4

[컨테이너명d]

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server = utf8

3.3 확인

  • 도커 시작
  • 확인
use 컨테이너명;
status;

인코딩 방식이 아직 utf8mb4로 바뀌지 않은 경우
ALTER DATABASE mydb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

  • 재확인

4. 도커 이해해보기

컨테이너들 안에는 각각 장고, 리액트 등등이 들어있다.

yaml은 컨테이너들 사이에 데이터 교환을 가능케 한다.

docker 실행 → yml 실행 → 컨테이너들 실행

dockerfile

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

리스트에 넣어 띄어놓는 이유는 바로 작동이 되지않고 리눅스에 들어가면 리스트가 해체되면서 바로 작동되도록 하기 위해

예를들어 장고 리액트 DB가 도커파일을 각각 하나씩 가지고 있어야 하고
docker-compose.yml은 3개를 묶어주는 기능이므로 단 하나 존재해야 한다. 주로 장고 프로젝트 안에 위치한다.

version: "3"

services:
  database:
    container_name: flussbergdb
  web:
    container_name: flussbergdj:v1

compose up

  • 이름이 unique 해야 도커허브에 올릴 때 문제 없다

터미널에서 docker compose up 명령어 입력

docker images 로 이미지 리스트 확인 후

docker rmi [image id] 로 모든 개별 이미지 삭제


errors

1. This error may indicate that the docker daemon is not running

2. WSL 2 installation is incomplete

해결

  • 파워쉘 관리자 권한으로 실행

  • 리눅스 서브시스템 활성 명령어 입력
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

  • 가상머신 플랫폼 기능 활성화 명령어 입력
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  • x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지 다운로드, 설치

  • 도커 재시작

3. OCI runtime exec failed: exec failed:

docker Image가 Alpine인 경우 /bash 대신 /sh를 사용

0개의 댓글