반응형
도커 이미지 내에서 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 파일의 모든 명령은 자체 컨테이너에서 실행됩니다.
프로세스는 다음과 같이 생각할 수 있습니다.
- 이전 이미지를 사용하여 새 컨테이너를 회전시킵니다.
- 명령어가 실행됩니다.
- 용기가 스핀다운되다
- 다음 명령을 실행하기 위해 해당 컨테이너의 이미지가 캡처됩니다.
, 「」가RUN service mysql start
새 컨테이너를 회전시키고 MariaDB를 시작한 다음 MariaDB를 종료하는 등 컨테이너를 종료합니다.
대신 CMD와 ENTRIPOINT를 사용해 보십시오. 컨테이너가 스핀업되면 실행되는 기본 실행 파일, 명령 및 매개 변수를 설정하는 것으로 생각할 수 있습니다.하지만, 그 둘의 차이는 조금 더 신경질적이다.CMD 및 ENTERPOINT 문서를 확인합니다.
다음과 같이 됩니다.
# 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
반응형
'programing' 카테고리의 다른 글
FileReader와 BufferedReader를 모두 닫아야 합니까? (0) | 2022.10.30 |
---|---|
mysqld.sock을 찾을 수 없음: 소켓 '/var/run/mysqld/mysqld'를 통해 로컬 MySQL 서버에 연결할 수 없습니다.sock' (2 "그런 파일 또는 디렉토리가 없습니다") (0) | 2022.10.30 |
표준 시간대가 있는 PHP 날짜()? (0) | 2022.10.30 |
Eclipse가 "JNI 공유 라이브러리를 로드하지 못했습니다"를 보고했습니다. (0) | 2022.10.29 |
matplotlib(피플롯)에서 프레임을 제거하는 방법.그림 vs matplotlib.그림 )(frameon=matplotlib의 잘못된 문제) (0) | 2022.10.29 |