如何在具有入口点的容器上运行bash?
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
&& apt-get install -y curl gnupg
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash \
&& export NVM_DIR="$HOME/.nvm" \
&& [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \
&& [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" \
&& nvm i 8.11 \
&& apt-get install -y mysql-server=5.7.23-0ubuntu0.18.04.1 python3 python3-pip \
&& ln -s /usr/bin/python3 /usr/bin/python \
&& ln -s /usr/bin/pip3 /usr/bin/pip \
&& pip install awscli --upgrade --user \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
ENTRYPOINT [ "/etc/init.d/mysql", "start" ]
EXPOSE 3306
我试过:
jiewmeng@JM ~/Dropbox/ci-docker-node-mysql docker run -it ci-docker-node-mysql bash
* Starting MySQL database server mysqld No directory, logging in with HOME=/
[ OK ]
jiewmeng@JM ~/Dropbox/ci-docker-node-mysql
但我一开始就被开除了
我试着运行我的docker容器。。。
jiewmeng@JM ~/Dropbox/ci-docker-node-mysql docker run -p 3307:3306 ci-docker-node-mysql
✘ jiewmeng@JM ~/Dropbox/ci-docker-node-mysql mysql -h 127.0.0.1:3307
ERROR 2005 (HY000): Unknown MySQL server host '127.0.0.1:3307' (2)
但似乎我无法连接。我做错了什么?
2条答案
按热度按时间1aaf6o9v1#
当命令
mysql
完成。一旦任务完成,容器就不会持久化。尝试在守护程序模式下运行mysql,这会阻止它假定进程已完成:
编辑:我看了官方的
mysql
Docker 的形象,他们就是这样做的。一旦完成了,你就可以跑了
exec
要将壳放入容器中:5lhxktic2#
如果要使用bash启动容器: