dokcer 自定义镜像

项目背景,局域网跑定时脚本,但是在容器里面离线安装screen和crontab不成功,此时方法为自己制作镜像来启动项目 

step1:自定义镜像

原镜像 registry.aspider.avlyun.org/library/php-apache

docker run -d --name xz_apache registry.aspider.avlyun.org/library/php-apache

在容器里面

我们进去发现没有vim,screen.crontab功能,不能满足我们的需求 

# sudo apt-get update

#sudo apt-get install vim

#sudo apt-get install screen

#sudo apt-get install cron 

# screen -ls  # cat /etc/crontab  检查是否安装好 没问题就继续

ctrl + p +q 退出容器 

#docker ps   查看刚刚的容器 

# docker commit 容器id xz_apache  

#docker save xz_apache > /var/www/xz_apache.tar

至此容器 已经制作好在你的/var/www文件夹下,利用ftp传到服务器上 

 

step2:服务器上操作 

 

# docker load -i xz_apache.tar  

docker images 查看镜像,并后台启动,进入容器

(可选)# vim /etc/apache2/apache2.conf          (此操作可不做,但是我还是记录一下)

 

(可选)#/etc/init.d/apache2 restart

step3:编写PHP文件及shell文件 

shell文件时需要注意把phpstrom右下角 改为 LF 然后再编写,否则会报错 

#!/bin/bash
    sample=$(screen -ls|grep aa|wc -l)
    while [ ${sample} -lt 1 ]
    do
        screen -dmS aa php aa.php
        sample=`expr ${sample} + 1`
    done

里面的 aa等于 php文件名

step4:crontab 

首先chmod 777 sh文件 ,并确保php文件和sh文件是好的

其次 注意你的时间是否准确 date查看 

然后

#vim /etc/crontab 

 

Docker允许用户通过Dockerfile来定义自己的镜像。下面是一个简单的示例,演示如何创建一个自定义镜像: 1. 首先,在一个空白目录中创建一个名为Dockerfile的文件。 2. 在Dockerfile中,使用FROM指令指定基础镜像。例如,可以选择一个适合你的应用程序的操作系统作为基础镜像。 ``` FROM ubuntu:latest ``` 3. 接下来,使用RUN指令执行一系列命令来设置镜像的环境。例如,安装一些软件包或配置一些文件。 ``` RUN apt-get update && apt-get install -y software-properties-common ``` 4. 使用COPY指令将本地文件复制到镜像中。例如,复制应用程序的源代码文件。 ``` COPY . /app ``` 5. 使用WORKDIR指令设置工作目录。例如,进入应用程序的根目录。 ``` WORKDIR /app ``` 6. 使用CMD指令定义容器启动时要运行的命令。例如,启动应用程序。 ``` CMD ["python", "app.py"] ``` 7. 保存并关闭Dockerfile。 接下来,你可以使用以下命令构建自定义镜像: ``` docker build -t my-custom-image:tag . ``` 其中,`-t`参数用于指定镜像的名称和标签,`.`表示Dockerfile所在的当前目录。 构建过程可能需要一些时间,取决于你的镜像大小和网络速度。构建完成后,你可以使用以下命令查看所有可用的镜像: ``` docker images ``` 你应该能够看到刚刚构建的自定义镜像。 希望这个简单示例可以帮助你开始创建自己的Docker自定义镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值