docker.sockファイルのパスを変更する方法を知りたい?
Dockerソケットとは?
Dockerソケットファイルは/var/run/docker.sockにあります
デフォルトでは、メインのDockerデーモン(プロセス)との通信に使用されます。これは、Docker APIのエントリポイントです。このソケットは、Docker CLIがデフォルトでdockerコマンドを実行するために使用します.
docker sockファイルの場所を変更する方法を紹介しましょう.
Dockerを停止する
まず、システムでdockerサービスが実行されている場合は、停止します。停止したことを確認するには、statusコマンドを実行します.
[メール保護]:〜$ sudo service docker stop
[メール保護]:〜$ sudo service docker status
●docker.service-Dockerアプリケーションコンテナーエンジン
ロード済み:ロード済み(/lib/systemd/system/docker.service; enabled;ベンダープリセット:enabled)
アクティブ:土2019-11-23 15:37:00 EST以降、非アクティブ(デッド)。 4秒前
ドキュメント:https://docs.docker.com
プロセス:1474 ExecStart = / usr / bin / dockerd -H fd:// –containerd = / run / containerd / containerd.sock(code = exited、status = 0 / SUCCESS)
メインPID:1474(コード=終了、ステータス= 0 /成功)
11月10日01:56:49 geekflare dockerd [1474]:time ="2019-11-10T01:56:49-05:00" レベル=エラーメッセージ="2019/11/10 06:56:49 go-plugins-helperに入る
11月10日01:56:49 geekflare dockerd [1474]:time ="2019-11-10T01:56:49-05:00" レベル=エラーメッセージ="時間= \"2019-11-10T06:56:49Z \" level = debug msg =
11月10日01:56:49 geekflare dockerd [1474]:time ="2019-11-10T01:56:49-05:00" レベル=エラーメッセージ="時間= \"2019-11-10T06:56:49Z \" レベル=エラーメッセージ=
11月10日01:57:23 geekflare dockerd [1474]:time ="2019-11-10T01:57:23.635519865-05:00" level = info msg ="コンテナ3141793b98f315dc90a57d81006
11月10日01:57:24 geekflare dockerd [1474]:time ="2019-11-10T01:57:24.091797103-05:00" level = info msg ="イベントを無視" module = libcontainerd
11月23日15:36:56 geekflare systemd [1]:Docker Application Container Engineの停止…
11月23日15:36:56 geekflare dockerd [1474]:time ="2019-11-23T15:36:56.992795411-05:00" level = info msg ="信号の「終了」処理"
11月23日15:36:58 geekflare dockerd [1474]:time ="2019-11-23T15:36:58.234014533-05:00" level = info msg ="イベントを無視" module = libcontainerd
11月23日15:37:00 geekflare dockerd [1474]:time ="2019-11-23T15:37:00.403572098-05:00" level = info msg ="イベントを無視" module = libcontainerd
11月23日15:37:00 geekflare systemd [1]:Docker Application Container Engineを停止しました.
docker.confとdocker.socketを編集します
次のように、パスを/var/run/docker.sockから/home/geekflare/docker.sockに変更します
- / etc / init /ディレクトリ内のdocker.confファイルを新しい場所で編集します。 DOCKER_SOCKETパスを使用して1行を編集するだけです.
[メール保護]:〜$ sudo gedit /etc/init/docker.conf
解説 "Dockerデーモン"
(filesystem and net-device-up IFACE!= lo)で開始
ランレベルで停止[!2345]
制限nofile 524288 1048576
#ゼロ以外の制限があると、アカウンティングのオーバーヘッドが原因でパフォーマンスの問題が発生します
#カーネル内。コンテナーローカルアカウンティングにはcgroupを使用することをお勧めします.
nproc無制限無制限を制限します
リスポーン
強制終了20
起動前スクリプト
#https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mountも参照
if grep -v ‘^#’ / etc / fstab | grep -q cgroup \
|| [! -e / proc / cgroups] \
|| [! -d / sys / fs / cgroup];その後
出口0
fi
もし! mountpoint -q / sys / fs / cgroup;その後
mount -t tmpfs -o uid = 0、gid = 0、mode = 0755 cgroup / sys / fs / cgroup
fi
(
cd / sys / fs / cgroup
sys for $(awk ‘!/ ^#/ {if($ 4 == 1)print $ 1}’ / proc / cgroups);行う
mkdir -p $ sys
もし! mountpoint -q $ sys;その後
もし! mount -n -t cgroup -o $ sys cgroup $ sys;その後
rmdir $ sys ||本当
fi
fi
できた
)
終了スクリプト
脚本
#/ etc / default / $ UPSTART_JOB(/ etc / default / docker)でこれらを変更します
DOCKERD = / usr / bin / dockerd
DOCKER_OPTS =
if [-f / etc / default / $ UPSTART_JOB];その後
. / etc / default / $ UPSTART_JOB
fi
エグゼクティブ "$ DOCKERD" $ DOCKER_OPTS-生ログ
終了スクリプト
#放出しない "始めた" docker.sockの準備ができるまでイベント.
#https://github.com/docker/docker/issues/6647を参照
起動後スクリプト
DOCKER_OPTS =
DOCKER_SOCKET =
if [-f / etc / default / $ UPSTART_JOB];その後
. / etc / default / $ UPSTART_JOB
fi
もし! printf "%s" "$ DOCKER_OPTS" | grep -qE -e ‘-H | –host’;その後
DOCKER_SOCKET = / home / geekflare / docker.sock
そうしないと
DOCKER_SOCKET = $(printf "%s" "$ DOCKER_OPTS" | grep -oP -e ‘(-H | –host)\ W * unix:// \ K(\ S +)’ | sed 1q)
fi
[-n "$ DOCKER_SOCKET" ];その後
ながら! [-e "$ DOCKER_SOCKET" ];行う
initctl status $ UPSTART_JOB | grep -qE "(停止|リスポーン)/" && 1番出口
エコー "$ DOCKER_SOCKETを待っています"
睡眠0.1
できた
エコー "$ DOCKER_SOCKETが稼働しています"
fi
終了スクリプト
- / lib / systemd / system /にあるdocker.socketファイルを、更新されたdocker.sockファイルの場所で編集します。.
[メール保護]:〜$ sudo gedit /lib/systemd/system/docker.socket
[単位]
Description = APIのDockerソケット
PartOf = docker.service
[ソケット]
ListenStream = / home / geekflare / docker.sock
SocketMode = 0660
SocketUser = root
SocketGroup = docker
[インストール]
WantedBy = sockets.target
以下のコマンドを実行して変更を更新します(docker sockファイルの場所).
[メール保護]:〜$ sudo systemctl daemon-reload
Dockerを起動する
Dockerサービスを開始して、開始されているかどうかステータスを確認しましょう。端末に印刷されたステータスログの最後に、docker.sockファイルの更新されたパスが表示されます。.
[メール保護]:〜$ sudo service docker start
[メール保護]:〜$ sudo service docker status
docker.service-Dockerアプリケーションコンテナーエンジン
ロード済み:ロード済み(/lib/systemd/system/docker.service; enabled;ベンダープリセット:enabled)
アクティブ:土2019-11-23 15:39:36 EST以降アクティブ(実行中)。 3秒前
ドキュメント:https://docs.docker.com
メインPID:8840(dockerd)
タスク:17
メモリ:47.6M
CGroup:/system.slice/docker.service
└─8840/ usr / bin / dockerd -H fd:// –containerd = / run / containerd / containerd.sock
11月23日15:39:35 geekflare dockerd [8840]:time ="2019-11-23T15:39:35.091941184-05:00" レベル=警告メッセージ="カーネルがcgroup rtランタイムをサポートしていません"
11月23日15:39:35 geekflare dockerd [8840]:time ="2019-11-23T15:39:35.093149218-05:00" level = info msg ="コンテナの読み込み:開始."
11月23日15:39:35 geekflare dockerd [8840]:time ="2019-11-23T15:39:35.957842188-05:00" level = info msg ="デフォルトのブリッジ(docker0)には、IPアドレス172.17.0.0/16が割り当てられています。デーモン
11月23日15:39:36 geekflare dockerd [8840]:time ="2019-11-23T15:39:36.078753190-05:00" level = info msg ="コンテナの読み込み:完了."
11月23日15:39:36 geekflare dockerd [8840]:time ="2019-11-23T15:39:36.664727326-05:00" level = info msg ="Dockerデーモン" commit = 481bc77 graphdriver(s)= overlay2 version = 18.09.6
11月23日15:39:36 geekflare dockerd [8840]:time ="2019-11-23T15:39:36.817929464-05:00" レベル=エラーメッセージ="クラスタがエラーで終了しました:/ var / lib / doにTLS証明書をロード中にエラーが発生しました
11月23日15:39:36 geekflare dockerd [8840]:time ="2019-11-23T15:39:36.820439024-05:00" レベル=エラーメッセージ="スウォームコンポーネントを開始できませんでした" エラー="TLS証明書の読み込み中のエラー
11月23日15:39:36 geekflare dockerd [8840]:time ="2019-11-23T15:39:36.820821712-05:00" level = info msg ="デーモンが初期化を完了しました"
11月23日15:39:36 geekflare systemd [1]:Docker Application Container Engineを開始.
11月23日15:39:36 geekflare dockerd [8840]:time ="2019-11-23T15:39:36.883382952-05:00" level = info msg ="APIリッスン /home/geekflare/docker.sock"
docker.sockファイルのパスでlsコマンドを実行し、Dockerサービスを開始したときにこのファイルが作成されたことを確認します.
[メール保護]:〜$ ls -l
合計466832
-rw-r–r– 1 geekflare geekflare 0 Oct 23 05:32]
drwxr-xr-x 9 tomcat tomcat 4096 11月18日14:30 apache-tomcat-9.0.27
-rw-r–r– 1 geekflare geekflare 10982406 Oct 7 06:21 apache-tomcat-9.0.27.tar.gz
drwxr-xr-x 8 geekflare geekflare 4096 10月23日06:05 chef-repo
-rw-r–r– 1 geekflare geekflare 252269838 Jul 1 15:16 chef-server-core_13.0.17-1_amd64.deb
-rw-r–r– 1 geekflare geekflare 129713682 2018年12月27日chef-workstation_0.2.43-1_amd64.deb
drwxr-xr-x 2 geekflare geekflare 4096 2018年10月23日デスクトップ
-rw-r–r– 1 geekflare geekflare 726 Jul 27 15:10 Dockerfile
srw-rw —- 1ルートDocker 0 Nov 23 15:39 docker.sock
drwxr-xr-x 2 geekflare geekflare 4096 2018年10月23日ドキュメント
drwxr-xr-x 2 geekflare geekflare 4096 Jul 20 18:20ダウンロード
-rw-r–r– 1 geekflare geekflare 8980 2018年10月23日の例。
docker sockファイルの場所を更新しました.
Dockerを学びたいが忙しいなら、これをチェックしてください 短期集中コース.
タグ:
Docker