如何用入口点在docker容器上运行bash?

a0x5cqrl  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(346)

如何在具有入口点的容器上运行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)

但似乎我无法连接。我做错了什么?

1aaf6o9v

1aaf6o9v1#

当命令 mysql 完成。一旦任务完成,容器就不会持久化。
尝试在守护程序模式下运行mysql,这会阻止它假定进程已完成:

ENTRYPOINT ["mysqld"]

编辑:我看了官方的 mysql Docker 的形象,他们就是这样做的。
一旦完成了,你就可以跑了 exec 要将壳放入容器中:

docker exec -ti container-name /bin/bash
5lhxktic

5lhxktic2#

如果要使用bash启动容器:

docker run --rm -it --entrypoint "/bin/bash" ci-docker-node-mysql

相关问题