K8s教程-构建ubuntu+sshd+mysql-Docker镜像
Dockerfile-5.6
基于ubuntu20.04构建ssh和mysql服务的镜像
需要下载:mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz包和Dockerfile同级目录
建议:通常建议每个服务独立为一个docker
FROM ubuntu:focal-20211006
LABEL maintainer="zaza <260458726@qq.com>"
ENV root_password zaza
ENV mysql_password zaza
ENV mysql_dir mysql-5.6.36-linux-glibc2.5-x86_64
ENV PATH /usr/local/mysql/bin:$PATH
ADD ${mysql_dir}.tar.gz /usr/local/
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
autoconf build-essential libncurses5 libaio1 libnuma1 openssh-server \
wget netcat-openbsd curl lftp net-tools tzdata subversion \
vim lrzsz gdb telnet zip unzip tree screen tcpdump lsof dos2unix ntp iproute2 \
&& ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& dpkg-reconfigure --frontend noninteractive tzdata \
&& echo "root:${root_password}" | chpasswd \
&& echo "UseDNS no" >> /etc/ssh/sshd_config \
&& echo "PermitRootLogin yes" >> /etc/ssh/sshd_config \
&& mkdir /run/sshd \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean \
&& ln -s /usr/local/${mysql_dir} /usr/local/mysql \
&& useradd mysql -M -s /sbin/nologin \
&& install -o mysql -g mysql -d -m 750 /usr/local/mysql/data \
&& cd /usr/local/mysql \
&& /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data \
&& echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile \
&& echo '#!/bin/bash' >> /opt/start.sh \
&& echo 'nohup /usr/sbin/sshd -D -o ListenAddress=0.0.0.0 &' >> /opt/start.sh \
&& echo '/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql --user=mysql' >> /opt/start.sh \
&& chmod 755 /opt/start.sh
EXPOSE 22
EXPOSE 3306
CMD ["/opt/start.sh"]
Dockerfile-5.7
基于ubuntu20.04构建ssh和mysql服务的镜像
需要下载:mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz包和Dockerfile同级目录
建议:通常建议每个服务独立为一个docker
FROM ubuntu:focal-20211006
LABEL maintainer="zaza <260458726@qq.com>"
ENV root_password zaza
ENV mysql_password zaza
ENV mysql_dir mysql-5.7.33-linux-glibc2.12-x86_64
ENV PATH /usr/local/mysql/bin:$PATH
ADD ${mysql_dir}.tar.gz /usr/local/
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
autoconf build-essential libncurses5 libaio1 libnuma1 \
openssh-server wget netcat-openbsd curl lftp net-tools tzdata subversion \
vim lrzsz gdb telnet zip unzip tree screen tcpdump lsof dos2unix ntp iproute2 \
&& ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& dpkg-reconfigure --frontend noninteractive tzdata \
&& echo "root:${root_password}" | chpasswd \
&& echo "UseDNS no" >> /etc/ssh/sshd_config \
&& echo "PermitRootLogin yes" >> /etc/ssh/sshd_config \
&& mkdir /run/sshd \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean \
&& ln -s /usr/local/${mysql_dir} /usr/local/mysql \
&& useradd mysql -M -s /sbin/nologin \
&& install -o mysql -g mysql -d -m 750 /usr/local/mysql/data \
&& /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
&& echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile \
&& echo '#!/bin/bash' >> /opt/start.sh \
&& echo 'nohup /usr/sbin/sshd -D -o ListenAddress=0.0.0.0 &' >> /opt/start.sh \
&& echo '/usr/local/mysql/bin/mysqld --user=mysql' >> /opt/start.sh \
&& chmod 755 /opt/start.sh
EXPOSE 22
EXPOSE 3306
CMD ["/opt/start.sh"]
普通用戶
根据需求调整Dockerfile配置文件
# ENV username zaza
# ENV password zaza
# && adduser --gecos "" --disabled-password ${username} \
# && echo "${username}:${password}" | chpasswd \
构建
先下载 mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
docker build -t ubuntu:focal-20211006-zaza .
运行测试
# docker run -itd --name ubuntu -p 2222:22 -p 3306:3306 ubuntu:focal-20211006-zaza
docker run -itd --name ubuntu -p 2222:22 ubuntu:focal-20211006-zaza
# 进入容器
docker exec -it ubuntu bash
# ipaddr=$(hostname -I)
导出
docker save -o ubuntu-focal-20211006-zaza.tar ubuntu:focal-20211006-zaza
# docker save > ubuntu-focal-20211006-zaza.tar ubuntu:focal-20211006-zaza
导入
docker load -i ubuntu-focal-20211006-zaza.tar
# docker load < ubuntu-focal-20211006-zaza.tar
- 原文作者:zaza
- 原文链接:https://zazayaya.github.io/2021/11/03/docker-build-ubuntu-sshd-mysql-image.html
- 说明:转载本站文章请标明出处,部分资源来源于网络,如有侵权请及时与我联系!