Dockerfile编写,以及设置一个自启动脚本

FROM:指定基础镜像,必须为第一个命令

MAINTAINER: 维护者信息

RUN:构建镜像时执行的命令

ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget

COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源

CMD:构建容器后调用,也就是在容器启动时才进行调用。

ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

LABEL:用于为镜像添加元数据

ENV:设置环境变量

EXPOSE:指定于外界交互的端口

WORKDIR:工作目录,类似于cd命令

Dockerfile

#base image
FROM centos
# MAINTAINER
MAINTAINER [email protected]
#RUN 执行以下命令
RUN mkdir /home/docker
#相当于cd
WORKDIR /home/docker

#ADD  文件放在当前目录下,拷过去会自动解压
ADD minecraft_server.1.10.2.jar /home/docker
ADD mc_start.sh  /home/docker
#RUN 执行以下命令
#安装jdk
RUN yum -y install java-1.8.0-openjdk
RUN java -Xms120m -Xmx160m -jar /home/docker/minecraft_server.1.10.2.jar nogui
RUN sed -i ‘s/eula = false/eula = true/g‘ ./eula.txt
RUN chmod 777 /home/docker/mc_start.sh    && cp -rf /home/docker/mc_start.sh /etc/profile.d    && cp -rf /home/docker/mc_start.sh /etc/init.dWORKDIR /etc/profile.d
RUN chkconfig --add /etc/profile.d/mc_start.sh    &&chkconfig /etc/profile.d/mc_start.sh on
#EXPOSE 映射端口
EXPOSE 25565

mc_start.sh

#!/bin/bash
# chkconfig: 2345 10 90
# description: mc_start ....
#启动服务器
echo "服务启动中..."
sed -i ‘s/false/true/g‘ ./eula.txt
java -Xms120m -Xmx160m -jar /home/docker/minecraft_server.1.10.2.jar nogui
echo "服务启动成功..."

原文地址:https://www.cnblogs.com/lidedong/p/11420055.html

时间: 2024-10-07 23:21:57

Dockerfile编写,以及设置一个自启动脚本的相关文章

nginx启动脚本编写及设置开机自启动

环境:Centos 6.8 如果机器是Centos 7的,此脚本和设置开机自启动方法不适用. 首先确保nginx配置文件中:有pid目录 pid        logs/nginx.pid; 1.1 编写nginx启动脚本 [[email protected] ~]# cd /server/scripts [[email protected] scripts]# vim nginx.sh  #!/bin/bash [ -f /etc/init.d/functions ] && . /etc

ubuntu14.04 设置开机自启动脚本

方法1.将脚本放入/etc/rc.local文件中. 方法2.添加一个ubuntu的开机启动服务 分为以下几个步骤: 1)新建一个脚本文件 new_services.sh #!/bin/bash # command content exit 0 2)将脚本放置到启动目录下 sudo mv new_services.sh /etc/init.d/ 3)设置权限 sudo chmod 755 new_services.sh 4)将脚本添加到启动脚本 cd /etc/init.d/ sudo upda

设置一个双色球脚本

#!/bin/bash###红球###RED='\033[31m'BLUE='\033[34m'END='\033[0m'sleep 2echo -ne "$RED 红球: $END"for i in $(seq 6)do        echo -n "   $[$RANDOM%33+1]"done echo###蓝球#### echo -ne "$BLUE 蓝球: $END"for i in $(seq 1)do        echo -n

设置一个双色球脚本(2)并带颜色输出

#!/bin/bash RED='\033[31m'   BLUE='\033[34m'   END='\033[0m'   echo -en "$RED 红色:$END"    #sleep 3 while true    do     red=$[$RANDOM%33+1]    echo $redstring | grep -qw $red && continue    echo -ne " $RED$red$END"    redstring

Linux入门(4)- Linux自启动脚本

通常我们部署到Linux上的系统,都需要设置自启动,而Linux自启动的方式有很多种,比如 通过(init.d)服务的方式自启动 . 通过systemctl 服务的方式自启动 等等 这里介绍一下 通过(init.d)服务的方式自启动 1.使用 root用户 登录到 Linux 系统 2.切换到 init.d 目录 cd /etc/rc.d/init.d/ 3.创建一个自启动脚本,这里就创建一个名为 autostart.sh 的脚本吧(名字自取) touch autostart.sh //创建 a

[一] 编写第一个 Shell 脚本

什么是 Shell 脚本? 最简单的解释,一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. Shell 有些独特,因为它不仅是一个功能强大的命令行接口,也是一个脚本语言解释器.我们将会看到, 大多数能够在命令行中完成的任务也能够用脚本来实现,同样地,大多数能用脚本实现的操作也能够 在命令行中完成. 虽然我们已经介绍了许多 shell 功能,但只是集中于那些经常直接在命令行中使用的功能. She

转:Shell 编程--本文结合大量实例阐述如何编写一个shell脚本

转自:情報官世界 本文结合大量实例阐述如何编写一个shell脚本. 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的任务. 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bas

centos7编写自启动脚本

编写启动脚本:vim srvd #!/bin/bash function start() { # 启动命令 } function stop() { # 停止命令 } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage : start | stop | restart" ;; esac 加入系统启动文件夹: chmod a+x srvd cp -arf srv

【VIM001】编写第一个vim脚本

学习vim总是看到各路高手都在实现自己的插件,看得我直流口水,也想自己编写vim插件,于是乎我也开干.那就从第一个脚本开始吧,开始掌控自己的vim. 我们首先要问的是从哪里开始学起,我第一步就搜索各种资料,但是搜索归搜索,最终还是要去看文档的.在google的过程中,我发现了下面的帮助命令,就开始了我的学习之路,所谓取人鱼不如取人渔. :help vim-script-intro :h vim-script-intro 到这个帮助文档的顶部,你会看到这个标题:Write a Vim script