docker 容器中cron服务无法设置开机启动

最近弄了一个数据库自动备份的脚本,打算在docker容器中使用它,过程一直很顺利,直到在设置定时任务时,跳进了docker容器埋藏的大坑。不知道官方是处于什么样的考虑,在mariadb这个镜像中竟然移除了cron这个定时服务,导致只能手动安装。
所以:

  • 我们在 Dockefiles 里面首先要安装 cron:apt-get install -y cron
  • 执行任务的脚本需要写入:echo "*/1 * * * * ./backup_db.sh" >> /etc/crontab
  • 启动 cron 的自启动:update-rc.d cron defaults 99

但是,这个 update-rc.d 并没有生效!!

阅读更多

docker 部署web应用

一、创建网络

创建一个指定子网ip的网络

docker network create --subnet=192.168.0.0/16 --gateway=192.168.0.1 -o com.docker.network.bridge.default_bridge=true -o com.docker.network.bridge.enable_icc=true -o com.docker.network.bridge.enable_ip_masquerade=true -o com.docker.network.bridge.host_binding_ipv4=0.0.0.0 -o com.docker.network.driver.mtu=1500 mynet

官网配置

阅读更多

docker入门

学习docker,首先需要了解Docker的三个基本概念:
1、镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。
2、容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。
3、仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。

docker_icon

阅读更多