Hero Image
DOCKER构建MariaDB

现在 Docker 可所谓是最火的容器技术了,至于什么是 Docker,请到其官方网站或者维基百科查看。 这里想通过一个示例来看看怎么通过 Dockerfile 来构建一个 Docker 镜像。 构建MariaDB容器镜像 Docker 提供了两种方法来生产应用镜像: 通过启动一个基础容器(比如基于某种 Linux 发行版的镜像的容器),然后在容器里执行各种命令来安装相应的软件包,进行配置后,再通过 docker commit 命令把已经更新的容器生产相应的镜像。 通过编写一个 Dockerfile ,然后使用 docker build 命令来构建相应的镜像。 相比第一种方式,通过 Dockerfile 的方式,可以更好的维护镜像,将镜像的 Dockerfile 提交到版本库管理。还可以在 Docker Hub 里创建镜像的自动构建。 下面让我们通过如何编写 Dockerfile 来构建一个 mariadb 的镜像: 首先创建一个目录,如 docker-mariadb ,然后编写一个名为 Dockerfile 的文件,内容如下: FROM opensuse:13.2 MAINTAINER Mengz You <you.mengz@yahoo.com> ENV MARIADB_MAJOR 10.0 ENV MARIADB_VERSION 10.0.17 ENV MYSQL_ROOT_PASSWORD mysecretpassword ENV MYSQL_DATADIR /var/lib/mysql RUN zypper ar -f -r http://download.opensuse.org/repositories/server:/database/openSUSE_13.2/server:database.repo \ && zypper -n --gpg-auto-import-keys ref RUN zypper -n in --no-recommends mariadb-$MARIADB_VERSION net-tools \ && zypper clean --all RUN mkdir -p /var/lib/mysql \ && mkdir -p /var/log/mysql \ && chown mysql:mysql /var/log/mysql VOLUME /var/lib/mysql COPY docker-entrypoint.

Hero Image
SYSTEMCTL管理系统服务

这是我在使用openSuSE过程中学习和使用systemd来管理系统的一些笔记。 首先那就让我们来先看看什么是systemd: Systemd Systemd是Linux下的一个程序,用来初始化系统。像SysV一样,其将会被Linux内核启动。 在opneSuSE上,systemd将会是系统进程号为1的进程,其负责初始化系统和启动系统服务。 openSuSE从12.3版本开始,用systemd作为默认的系统初始化程序代替了SysV。 想了解systemd和SysV的对于,可以参看这里。 用sytemctl进行系统管理 systemd提供了systemctl命令来进行系统服务管理,其调用格式如下: systemctl [通用选项] 子命令 [子命令选项] 在系统上管理服务 像SysV一样,通过子命令start|stop|restart等来管理服务: systemctl start|stop|status|restart|reload|… <服务名>.service 如查看当前cron服务的状态: # systemctl status cron.service cron.service - Command Scheduler Loaded: loaded (/usr/lib/systemd/system/cron.service; enabled) Active: active (running) since Mon 2015-01-26 15:50:21 CST; 3 days ago Main PID: 1247 (cron) CGroup: /system.slice/cron.service └─1247 /usr/sbin/cron -n systemctl支持一次操作多个服务,只要在子命令后添加多个服务名即可。 使用enable|disable来设置开启自动启动或者不启动一个服务: systemctl enable|disable <服务名>.service Systemd的启动目标 在SysV的启动系统上,用启动级别(runlevel)来表示系统的启动状态,已经哪些服务伴随这级别一起启动。 如 0 (关闭系统),3 (多用户带网络),5 (多用户带网络,显示图形用户界面)。 而在Systemd上,用目标(target)表示这个概念,如 graphical.target 提供了多用户带网,显示图像用户界面的启动目标,就相当与level 5。 systemd提供了很多内置的目标单元,可以用下面的命令查看: # systemctl list-unit-files –type=target