docker-machine が起動できない問題の解決策: 1. "docker-machine ls" を使用してホストの状態を確認する; 2. 既存の docker をアンインストールし、再インストールする; 3. docker を起動して、ホストの状態を確認するdocker サービスのステータス。
この記事の動作環境: centos7 システム、Docker バージョン 19.03.9、Dell G3 コンピューター。
docker-machine が起動できない問題を解決するにはどうすればよいですか?
Centos7 docker-machine が docker ホストをデプロイし、docker サービスが開始できない
背景:
Centos7 Core を docker として使用する計画テストを構築するホスト プラットフォームには 4 つのホストのみがあり、Swarm ソリューションを使用します。
#環境:
システム | IP アドレス | 準備作業 | |
CentOS7コア | xxx.xxx.xxx.80 | yum ソースを更新し、aliyun ミラーを使用し、最新のステータスに更新します。docker-machine で使用するユーザーを設定し、sudo passwd-free | |
CentOS7 Core | xxx.xxx.xxx.81 | yum ソースを更新し、aliyun イメージを使用し、最新のステータスに更新しますユーザー、sudo パスワードなし | |
CentOS7 Core | xxx.xxx.xxx を使用するように docker-machine を構成します。 82 | yum ソースを更新し、aliyun ミラーを使用し、最新のステータスに更新します。docker-machine で使用するユーザーを設定し、sudo パスワードを無料にします | |
CentOS7 Core | xxx.xxx.xxx.83 | yum ソースを更新し、aliyun ミラーを使用し、次のように更新します。最新のステータス |
構成 docker-machine で使用されるユーザー、sudo パスワードなし |
ubuntu-18.04lts | 設定不要 秘密キーを使用して docker-host にログイン |
作業中のデスクトップ (Ubuntu) ホストに docker-machine をインストールします。 https://docs.docker.com/machine/install-machine/
最初に docker-host1:をインストールします。
docker-machine --debug create --driver generic - -generic-ip-address=xxx.xxx.xxx.80 --generic-ssh-key=/home/sleeber/.ssh/id_rsa - -generic-ssh-port=22 --generic-ssh-user=wntime docker -host1
docker-machine ls を使用してホストのステータスを表示します:インストールの最終出力には、docker サービスを開始できないことが示されています:
sudo systemctl -f start docker SSH cmd err, output: exit status 1: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. Error creating machine: Error running provisioning: something went wrong running an SSH command command : sudo systemctl -f start docker err : exit status 1 output : Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. notifying bugsnag: [Error creating machine: Error running provisioning: something went wrong running an SSH command command : sudo systemctl -f start docker err : exit status 1 output : Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. ]
:~/docker-test-env$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS docker-host1 - generic Running tcp://xxx.xxx.xxx.80:2376 Unknown Unable to query docker version: Cannot connect to the docker engine endpointdocker-host1 ホストに SSH で接続し、docker サービスを手動で開始します
sudo systemctl start docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.プロンプトに従ってステータスを確認します
systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d └─10-machine.conf Active: failed (Result: start-limit) since Thu 2020-05-28 20:41:39 EDT; 581ms ago Docs: https://docs.docker.com Process: 30463 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic (code=exited, status=1/FAILURE) Main PID: 30463 (code=exited, status=1/FAILURE)
谷歌一下: https://github.com/moby/moby/issues/33931 https://www.jianshu.com/p/bd395fdf7611 https://www.jianshu.com/p/93518610eea1検索結果によると、10-machine.conf が原因のはずですが、10-machine.conf ファイルとフォルダが削除されていても起動できません
$ sudo rm /etc/systemd/system/docker.service.d/10-machine.conf $ sudo systemctl start docker Failed to start docker.service: Unit is not loaded properly: Invalid argument. See system logs and 'systemctl status docker.service' for details. $ sudo rm -rf /etc/systemd/system/docker.service.d/ $ sudo systemctl start docker Failed to start docker.service: Unit is not loaded properly: Invalid argument. See system logs and 'systemctl status docker.service' for details.dockerd を使用すると直接起動できます
$ sudo nohup dockerd & [1] 31419 $ nohup: ignoring input and appending output to ‘nohup.out’ $ ll total 4 -rw-------. 1 root root 2638 May 28 20:52 nohup.out $ tail -f nohup.out tail: cannot open ‘nohup.out’ for reading: Permission denied tail: no files remaining $ sudo tail -f nohup.out time="2020-05-28T20:52:56.409646032-04:00" level=warning msg="Base device already exists and has filesystem xfs on it. User specified filesystem will be ignored." storage-driver=devicemapper time="2020-05-28T20:52:56.430282474-04:00" level=info msg="[graphdriver] using prior storage driver: devicemapper" time="2020-05-28T20:52:56.430326847-04:00" level=warning msg="[graphdriver] WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release" time="2020-05-28T20:52:56.433336530-04:00" level=warning msg="mountpoint for pids not found" time="2020-05-28T20:52:56.433595847-04:00" level=info msg="Loading containers: start." time="2020-05-28T20:52:56.529329426-04:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" time="2020-05-28T20:52:56.558933143-04:00" level=info msg="Loading containers: done." time="2020-05-28T20:52:56.570819898-04:00" level=info msg="Docker daemon" commit=9d988398e7 graphdriver(s)=devicemapper version=19.03.9 time="2020-05-28T20:52:56.570873940-04:00" level=info msg="Daemon has completed initialization" time="2020-05-28T20:52:56.585131361-04:00" level=info msg="API listen on /var/run/docker.sock" ^C $ sudo docker version Client: Docker Engine - Community Version: 19.03.9 API version: 1.40 Go version: go1.13.10 Git commit: 9d988398e7 Built: Fri May 15 00:25:27 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.9 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 9d988398e7 Built: Fri May 15 00:24:05 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683systemctl を使用して docker サービスのステータスを確認しても失敗が表示されます
$ sudo systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d └─10-machine.conf Active: failed (Result: start-limit) since Thu 2020-05-28 20:49:52 EDT; 4min 59s ago Docs: https://docs.docker.com Process: 31051 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver overlay2 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic (code=exited, status=1/FAILURE) Main PID: 31051 (code=exited, status=1/FAILURE) May 28 20:49:50 test-java2 systemd[1]: docker.service failed. May 28 20:49:52 test-java2 systemd[1]: docker.service holdoff time over, scheduling restart. May 28 20:49:52 test-java2 systemd[1]: Stopped Docker Application Container Engine. May 28 20:49:52 test-java2 systemd[1]: start request repeated too quickly for docker.service May 28 20:49:52 test-java2 systemd[1]: Failed to start Docker Application Container Engine. May 28 20:49:52 test-java2 systemd[1]: Unit docker.service entered failed state. May 28 20:49:52 test-java2 systemd[1]: docker.service failed. May 28 20:50:45 test-java2 systemd[1]: start request repeated too quickly for docker.service May 28 20:50:45 test-java2 systemd[1]: Failed to start Docker Application Container Engine. May 28 20:50:45 test-java2 systemd[1]: docker.service failed.docker-machine で docker のインストールにまだ問題があると推測され、手動インストールしかできません
注注: docker をアンインストールした後、/etc/systemd/system/docker.service.d/ フォルダーを手動で削除する必要があります。そうしないと、新しくインストールされた docker が起動しません。
docker を起動して docker サービスの状態を確認既存の docker をアンインストールして再インストール
sudo yum remove docker* \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo rm -rf /etc/systemd/system/docker.service.d/ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io
$ sudo docker version Client: Docker Engine - Community Version: 19.03.10 API version: 1.40 Go version: go1.13.10 Git commit: 9424aeaee9 Built: Thu May 28 22:18:06 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.10 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 9424aeaee9 Built: Thu May 28 22:16:43 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683正常に起動できます推奨調査: 「
docker ビデオ チュートリアル
」以上がdocker-machineが起動できない問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

LinuxでDockerを使用するためのベストプラクティスには以下が含まれます。1。ドッケルンコマンドを使用してコンテナを作成および実行します。2。DockerComposeを使用してマルチコンテナーアプリケーションを管理します。3。定期的にクリーニングされていない画像とコンテナ、4。画像サイズを最適化して使用します。これらのプラクティスは、ユーザーがDockerを効率的に使用し、一般的な問題を回避し、コンテナ化されたアプリケーションを最適化するのに役立ちます。

LinuxでDockerを使用すると、開発と展開の効率が向上する可能性があります。 1。Dockerのインストール:スクリプトを使用して、ubuntuにDockerをインストールします。 2.インストールの確認:sudodockerrunhello-worldを実行します。 3。基本的な使用法:NginxコンテナDockerrun-Namemy-Nginx-P8080を作成します:80-Dnginx。 4。高度な使用法:カスタム画像を作成し、DockerFileを使用してビルドして実行します。 5。最適化とベストプラクティス:マルチステージビルドとドッケルコンポスを使用して、DockerFilesを作成するためのベストプラクティスに従ってください。

Docker監視の中核は、主にCPUの使用、メモリ使用、ネットワークトラフィック、ディスクI/Oなどのインジケーターを含む、コンテナの動作データを収集および分析することです。 Prometheus、Grafana、Cadvisorなどのツールを使用することにより、コンテナの包括的な監視とパフォーマンスの最適化を実現できます。

DockerSwarmは、スケーラブルで非常に利用可能なコンテナクラスターを構築するために使用できます。 1)dockerswarminitを使用して群れクラスターを初期化します。 2)swarmクラスターに参加して、dockerswarmjoinを使用します。 3)DockerServiceCreate-Namemy-Nginxを使用してサービスを作成します - Replicas3nginx。 4)dockerstackdeploy-cdocker-compose.ymlmyAppを使用して複雑なサービスを展開します。

DockerとKubernetesを使用して、エンタープライズアプリケーションのコンテナオーケストレーションを実行する方法は?次の手順で実装します。Dockerイメージを作成し、DockerHubにプッシュします。 Kubernetesで展開とサービスを作成して、アプリケーションを展開します。 Ingressを使用して外部アクセスを管理します。パフォーマンスの最適化と、マルチステージの構築やリソースの制約などのベストプラクティスを適用します。

Docker FAQは、次の手順で診断および解決できます。1。コンテナのステータスとログを表示、2。ネットワーク構成を確認します。これらの方法により、Dockerの問題を迅速に配置して固定し、システムの安定性とパフォーマンスを向上させることができます。

Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockerセキュリティの強化方法は次のとおりです。1。-cap-dropパラメーターを使用してLinux機能を制限します。2。読み取り専用コンテナを作成します。これらの戦略は、脆弱性の露出を減らし、攻撃者の機能を制限することにより、コンテナを保護します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
