build ubuntu镜像中安装mysql的Dockerfile(包含nginx redis python等等)
Dockerfile
FROM ubuntu:16.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends apt-utils \
&& apt-get install -y locales \
&& localedef -i zh_CN -c -f UTF-8 -A /usr/share/locale/locale.alias zh_CN.UTF-8 \
&& apt-get install -y mysql-server \
&& apt-key adv --fetch-keys http://nginx.org/keys/nginx_signing.key \
&& echo "deb http://nginx.org/packages/ubuntu/ xenial nginx \ndeb-src http://nginx.org/packages/ubuntu/ xenial nginx" >> /etc/apt/sources.list \
&& apt-get update \
&& apt-get install -y nginx \
&& apt-get install -y redis-server \
&& apt-get install -y vim git python3 python3-pip python3-venv libmysqlclient-dev python3-dev \
&& apt-get install -y tzdata \
&& apt-get install -y libssl-dev \
&& apt-get install -y wget \
&& apt-get install -y zsh \
&& wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh || true \
&& pip3 install uwsgi
ENV LANG zh_CN.utf8
EXPOSE 22
EXPOSE 80
EXPOSE 3306
EXPOSE 6379
build
docker build -t ubuntu:test .
创建容器并且映射端口到宿主机
docker run -itd --name wang -P ubuntu:test
-P就是随机映射
然后进入容器内部
docker exec -it wang zsh
查看mysql启动状态
service mysql status
未启动状态,启动mysql
service mysql start
启动失败
根据这个博主的https://blog.youkuaiyun.com/wy_97/article/details/78982694
usermod -d /var/lib/mysql/ mysql
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
chown -R mysql:mysql /var/lib/mysql
#之后重启mysql即可
启动成功
docker内登录成功,然而通过映射端口用seq pro连接不上
授权docker 内mysql 远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
依然失败。
sed 's/127.0.0.1/0.0.0.0/' -i /etc/mysql/mysql.conf.d/mysqld.cnf
然后重启mysql,连接成功。