/usr/lib/systemd/system/と/etc/systemd/system/

概要

/usr/lib/systemd/system/CentOSの場合
/lib/systemd/system/Ubuntuの場合

/etc/systemd/system/
のUnit設定ファイルは同名ファイルがある場合
/etc/systemd/system/が優先される。

使い分け

デーモンの起動オプションを変更する場合/usr/lib/systemd/system/以下のデフォルトの設定ファイルは変更せず、
/etc/systemd/system/にコピーしてこのファイルに変更を加える。

systemdに認識させる

例えば/etc/systemd/system/docker.service
のように新規でファイルを作成した場合は

systemctl daemon-reload

を実行すると認識される。

または

systemctl reenable docker

を実行すると認識される。

ファイルを更新した場合も同様に

systemctl daemon-reload

を実行する。

aptのリポジトリ操作

リポジトリファイル保存ディレクト
/etc/apt/sources.list.d/
apt-key一覧表示
apt-key list
リポジトリを削除する場合

apt-keyから該当のキーを削除する。
apt-key listからIDを取得して

apt-key del xxxxx

で削除可能

次に該当リポジトリファイルを削除
/etc/apt/sources.list.d/以下のファイルを削除

最後にapt updateを実行すれば完了

Dockerのmulti-stage builds

業務でAerospikeのPrometheusのexporterを使う機会があり、
そのDockerfileを見てみたところFROMが2個書いてありなんだろうと思っていましたが
Docker17.05系からサポートされたmulti-stage buildsという機能でした。

asprom/Dockerfile at master · alicebob/asprom · GitHub

FROM golang:1.9.2 AS build
ADD . /work
WORKDIR /work
RUN go build -o hello main.go

FROM alpine:3.6
COPY --from=build /work/hello /usr/local/bin/hello
ENTRYPOINT ["/usr/local/bin/hello”]

上記のように1つ目のFROMではgolangのイメージでgoのビルドだけを行っています。
またASで中間イメージにbuildという名前を付けています。

その後、2個目のFROMのalpineイメージではCOPY --from=buildと、先ほどASで中間イメージに名前を付けた名前を指定してビルドしたファイルをコピーしてきて実行させます。

これによりビルドはgolangイメージで行わせてイメージサイズが膨れ上がっても実行させるだけのalpineは軽量なサイズのままで済みます。