web-dev-qa-db-ja.com

Red Hat LinuxでDockerルートディレクトリを変更しますか?

少し問題があります。私は真新しいRed Hat Linux Serverを持っており、Docker CEの公式リポジトリでCentOS/Red Hat用のDocker CEをインストールしました。これで、dockerが/var/lib/dockerの下にコンテナーを作成することがわかりましたが、私の問題は、/data/dockerの下のデータに追加のパーティションを使用することです。 CentOS/Red HatでDockerのデフォルトのルートディレクトリを変更するにはどうすればよいですか?

HOWTOをいくつか試しましたが、同じ問題が発生します。構成が見つかりません。たとえば、次のファイルを検索します。

  • /etc/default/docker(Debian/Ubuntuのみだと思います)
  • /etc/systemd/system/docker.service.d/override.conf(システムで見つかりません)
  • /etc/docker/daemon.json(システムで見つかりません)

私が見るドッカー情報を取得した場合:

Dockerルートディレクトリ:/var/lib/docker

4
M. Max

実行中のすべてのDockerコンテナーを停止してから、Dockerデーモンを停止します。 「/ var/lib/docker」ディレクトリを、このデータを置きたい場所に移動します。あなたにとっては:

mv /var/lib/docker /data/

次に、このDockerディレクトリのシンボリックリンクを/ var/libパスに作成します。

ln -s /data/docker /var/lib/docker

Dockerデーモンとコンテナーを起動します。

3
mariaczi

Dockerデーモンの制御に関するDockerドキュメント は、これを行うためのプラットフォームに依存しない方法は次のとおりであることを示唆しています。

/etc/docker/daemon.jsonファイルを編集して次の行を含めます

{
    "data-root": "/mnt/docker-data",
    (...)
}

ここで、/mnt/docker-dataは、Dockerイメージとコンテナーを保存するディレクトリです。

その後

Sudo systemctl restart docker

あなたはそれが動作したかどうかを確認することができます

docker info

Docker Root Dir:で始まる行の内容を探します。

2
Wandering Logic

私はFedora 27を使用していますが、docker deamonのヘルプを見ることができます

dockerd --help 
--data-root string                        Root directory of persistent Docker state (default "/var/lib/docker")

dockerサービスを停止する

systemctl stop docker

docker default folderを移動します。/dataフォルダーの下に移動しました。

mv /var/lib/docker /data/.

サービスファイルを開く

vi /usr/lib/systemd/system/docker.service

execStart変数のパラメーターを変更します。

vi /usr/lib/systemd/system/docker.service

この鉱山。また、デバッグパラメータを追加しました。

ExecStart=/usr/bin/dockerd -D --data-root /data/docker

デーモンのリロードが必要

systemctl daemon-reload

あなたはサービスを始めることができます

systemctl start docker

サービス開始前にコマンドラインでテストできるかどうか

 dockerd -D --data-root /data/docker

されております。

0
ureyni