programing

도커 이미지 내에서 MariaDB가 시작되지 않음

firstcheck 2022. 10. 30. 21:55
반응형

도커 이미지 내에서 MariaDB가 시작되지 않음

ubuntu trusty 및 MariaDB 5.5를 사용하여 도커 이미지를 만들고 있지만 실제로 실행 중인 VM에 연결하지 않으면 MariaDB를 시작할 수 없습니다.

도커 파일:

FROM ubuntu:trusty

# Upgrade packages
RUN apt-get update && apt-get upgrade -y

# So we can add a repo to apt
RUN apt-get install -y software-properties-common

# Add MariaDB repo to aptitude
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
RUN add-apt-repository 'deb http://mirror.jmu.edu/pub/mariadb/repo/5.5/ubuntu trusty main'
RUN apt-get update

# Install MariaDB
RUN DEBIAN_FRONTEND=noninteractive debconf-set-selections << 'mariadb-server-5.5 mysql-server/root_password password PASS'
RUN DEBIAN_FRONTEND=noninteractive debconf-set-selections << 'mariadb-server-5.5 mysql-server/root_password_again password PASS'
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server

# Start MariaDB
RUN service mysql start

# Configure MariaDB User permissions
RUN echo "CREATE USER 'ubuntu'@'localhost'" | mysql -u root

생성하기 위해 실행 중인 명령:

docker build -t ebth-com-trusty --file `pwd`/Dockerfile `pwd` --no-cache

create 명령어는 항상 다음과 같은 이유로 실패합니다.

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

, 하면, 「CREATE USER」를 할 수 .service mysql start.

...RUN service mysql start동작하지 않습니다.더 이상 어떻게 디버깅해야 할지 모르겠습니다.

Docker 파일의 모든 명령은 자체 컨테이너에서 실행됩니다.

프로세스는 다음과 같이 생각할 수 있습니다.

  1. 이전 이미지를 사용하여 새 컨테이너를 회전시킵니다.
  2. 명령어가 실행됩니다.
  3. 용기가 스핀다운되다
  4. 다음 명령을 실행하기 위해 해당 컨테이너의 이미지가 캡처됩니다.

, 「」가RUN service mysql start새 컨테이너를 회전시키고 MariaDB를 시작한 다음 MariaDB를 종료하는 등 컨테이너를 종료합니다.

대신 CMD와 ENTRIPOINT를 사용해 보십시오. 컨테이너가 스핀업되면 실행되는 기본 실행 파일, 명령 및 매개 변수를 설정하는 것으로 생각할 수 있습니다.하지만, 그 둘의 차이는 조금 더 신경질적이다.CMDENTERPOINT 문서를 확인합니다.

다음과 같이 됩니다.

# Create default user
RUN service mysql start && \
    echo "CREATE USER 'ubuntu'@'localhost'" | mysql -u root

# Start MariaDB
ENTRYPOINT ["/bin/bash"]
CMD ["service", "mysql", "start"]

언급URL : https://stackoverflow.com/questions/41246073/mariadb-never-starts-within-docker-image

반응형