docker 容器服务脚本自启动


问题:有一个mysql的容器,每次启动容器后,都需要进入容器,然后启动mysql服务,效率太低

解决方法:通过Dockerfile来实现容器内服务自启动

 

一: 基础环境准备

准备基础环境:

  • docker mysql镜像(问题当中的mysql镜像)
  • 启动脚本

 

二: 编写Dockerfile文件

新建目录:

mkdir -p /opt/docker-file/ubuntu-mysql

编写Dockerfile文件

#新建Dockerfile文件
touch Dockerfile

Dockerfile文件内容如下:

复制代码

# 选择一个已有的os镜像作为基础
FROM ubuntu-ssh-jdk-mysql:v1

# 镜像的作者
MAINTAINER hanzhe

COPY start-mysql.sh /root/

# 配置java环境变量
ENV JAVA_HOME /usr/java/jdk
ENV PATH $JAVA_HOME/bin:$PATH
RUN chmod 777 /root/start-mysql.sh \
CMD ["sh","/root/start-mysql.sh"]

复制代码

 

 

 

三: 编写启动脚本

start-mysql.sh 脚本内容如下:

#!/bin/bash
 echo '1. starting mysql...' service mysql start echo '2. starting ssh...' /usr/sbin/sshd tail -f /dev/null

 

 

四: 构建docker image

构建命令:

docker build -t="ubuntu-mysql:v2" .

 

五:查看docker 镜像

docker images

 

六:验证

运行容器:

docker run -it -d --name mysql ubuntu-mysql:v2

进入容器:

docker exec -it 容器id /bin/bash

测试mysql:

mysql -uroot -proot

 

基于mysql的docker容器使mysql服务随容器启动而启动完成!!

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM