-v
플래그를 사용하여 컨테이너의 로컬 디렉터리 ~ /var/lib/mysql
폴더를 매핑하려고하지만 컨테이너의 상태는 Exited (0) 1
이됩니다. 그러나 -v
플래그를 전혀 사용하지 않으면 컨테이너는 Up
이지만 원하는 것은 아닙니다. 그 이유는 무엇일까요? 작동 로그에 이벤트 로그에 누락 된 행이 누락되었습니다 (예 : volume mount
).-v 플래그를 사용하여 Docker를 실행하면 컨테이너가 Exited 상태가됩니다.
$ docker -v
Docker version 17.09.0-ce, build afdb6d4
는 Dockerfile
FROM ubuntu:16.04
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server \
&& sed -i "s/127.0.0.1/0.0.0.0/g" /etc/mysql/mysql.conf.d/mysqld.cnf \
&& mkdir /var/run/mysqld \
&& chown -R mysql:mysql /var/run/mysqld
VOLUME ["/var/lib/mysql"]
EXPOSE 3306
CMD ["mysqld_safe"]
이 작동하지 않습니다되는 것입니다.
$ docker run -i -t -d -v /home/ubuntu/data:/var/lib/mysql --name mysql_container mysql_image
이벤트 로그.
2017-11-... container create 08b44c094... (image=mysql_image, name=mysql_container)
2017-11-... network connect 62bb211934... (container=08b44c094..., name=bridge, type=bridge)
2017-11-... container start 08b44c094... (image=mysql_image, name=mysql_container)
2017-11-... container die 08b44c094... (exitCode=0, image=mysql_image, name=mysql_container)
2017-11-... network disconnect 62bb211934... (container=08b44c094..., name=bridge, type=bridge)
컨테이너 로그.
$ docker logs -t mysql_container
2017-11-... mysqld_safe Logging to syslog.
2017-11-... mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-11-... mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
이 -v
$ docker run -i -t -d --name mysql_container mysql_image
이벤트 로그없이 작동합니다.
2017-11-... container create 84993141... (image=mysql_image, name=mysql_container)
2017-11-... network connect 62bb2119... (container=84993141..., name=bridge, type=bridge)
2017-11-... volume mount 8c36b53d33... (container=84993141...7, destination=/var/lib/mysql, driver=local, propagation=, read/write=true)
2017-11-... container start 84993141... (image=mysql_image, name=mysql_container)
컨테이너 로그.
$ docker logs -t mysql_container
2017-11-... mysqld_safe Logging to syslog.
2017-11-... mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-11-... mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2017-11-... mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
왜 mysql 컨테이너를 사용하지 않습니까? https://hub.docker.com/_/mysql/ – JazZ
나는이 단계에서 초보자로서 배우기 위해 실험하고 있기 때문에. – BentCoder