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 binzaijun

COPY start-mysql.sh /root/
# 配置java环境变量
ENV JAVA_HOME /usr/java/jdk 
ENV PATH $JAVA_HOME/bin:$PATHRUN 
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服务随容器启动而启动完成!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值