サーバーのDockerコンテナへのvscodeリモート接続を設定する方法

サーバーのDockerコンテナへのvscodeリモート接続を設定する方法

画像をプルする

docker pull [options] name [:tag] は、リポジトリからイメージをプルすることを意味します。options はパラメーターです。tag はバージョンです。

イメージを実行する(コンテナを生成する)

docker run [オプション] イメージ [:タグ] [コマンド] [引数…]

コンテナを実行して、イメージをテンプレートとして使用してコンテナを作成します。オプション、操作、タグ、バージョン、コマンド、実行時に実行するコマンド、引数、パラメータ

オプション オプションの略語 説明 –detach -d コンテナをバックグラウンドで実行し、コンテナ ID を出力します。
–interactive -i 接続がない場合でも標準入力を開いたままにします。通常は -t と一緒に使用されます。
–tty -t 疑似 tty を割り当てます。通常は -i と一緒に使用されます。

docker コンテナがタスクを完了すると、終了状態になります。コンテナをアップ状態にしたい場合は、次のようなコマンドを使用できます。
nginx:latest イメージを使用してコンテナをインタラクティブ モードで起動し、コンテナ内で /bin/bash コマンドを実行します。

docker run -dit nginx:latest /bin/bash

コンテナを起動する

docker 開始コンテナ ID

コンテナに入る

docker コンテナ ID をアタッチ
docker exec -it コンテナID /bin/bash
docker exec -it コンテナ名 bash

すべてのミラーを表示

イメージの一覧表示: docker images [OPTIONS] [REPOSITORY[:TAG]]

コンテナから出る

コンテナを閉じずに通常終了する場合は、(Ctrl+P+Q) を押してコンテナを終了します。exit を使用して終了すると、終了後にコンテナが閉じられます。

コンテナの再起動

(docker restart container id) コマンドを使用してコンテナを再起動します。

すべてのコンテナを表示

docker コンテナ ls
docker ps (実行中のコンテナを表示)
docker ps -a (すべてのコンテナを表示)

コンテナの削除

指定したコンテナを削除するには、docker container rm コマンドを使用するか、単に docker rm コマンドを記述してコンテナを削除することもできます。ただし、実行中のコンテナを削除することはできないため、削除する場合は、まずコンテナを停止する必要があります。

docker rm コンテナID

すべてのコンテナを一括で削除する必要がある場合は、次のコマンドを使用できます。

docker rm $(docker ps -q)

Docker で停止したコンテナを一括削除する

方法1:

#すべてのコンテナを表示し、終了状態のコンテナを除外して、これらのコンテナの ID を取得します。

sudo docker ps -a|grep 終了しました|awk '{print $1}'

# すべてのコンテナをクエリし、終了状態のコンテナを除外し、コンテナ ID を一覧表示して、これらのコンテナを削除します sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

方法2:

#実行されていないコンテナをすべて削除します(実行中のコンテナは削除できず、実行されていないコンテナは一緒に削除されます)

sudo docker rm $(sudo docker ps -a -q)

方法3:

#コンテナのステータスに応じて、終了状態のコンテナを削除します sudo docker rm $(sudo docker ps -qf status=exited)

方法4:

#Docker バージョン 1.13 以降では、docker containers prune コマンドを使用して分離されたコンテナを削除できます。

vscodeはssh経由でサーバー内のコンテナにリモート接続します

1. Ubuntu イメージを実行してコンテナを作成します。

docker run -it ubuntu

2. コンテナに入り、コンテナのルートパスワードを設定する

コンテナのルートパスワードを変更します: passwd
パスワードは次のように設定されています: 123456

3. sshサービスをインストールする

apt-getアップデート
apt-get で openssh-server をインストールします

4. ssh 設定を変更して、root ログインを許可します。通常、コンテナに入るには root アカウントが使用されますが、ssh はデフォルトで root アカウントがパスワードを使用してリモートでログインすることを禁止しているため、許可するには ssh 設定ファイルを変更する必要があります。

vim /etc/ssh/sshd_config
PermitRootLogin の値を withoutPassword から yes に変更します (先頭の # を削除します)
vim をお持ちでない場合は、インストールできます:
apt-get で vim をインストール

5. コンテナの変更を保存し、新しいイメージを生成する

docker commit <コンテナID> <新しいイメージ名>
たとえば、docker commit <コンテナID> ubuntu-ssh

6. 現在のコンテナを終了し、保存した新しいイメージを実行します(今回はポートをマップしてバックグラウンドで実行する必要があります)

終了(終了するとコンテナは閉じられます)
docker run -dit -p 8008:22 ubuntu-ssh (8008 は ssh 経由で接続するときに使用されるポート番号です)

7. execコマンドを使用してバックグラウンドで実行されているコンテナに入ります。

docker exec -it コンテナID /bin/bash
#execは既存のコンテナに入るためのもので、runは新しいコンテナを作成するためのものです

8. SSHサービスを開始する

sudo サービス ssh 開始

さらに(停止、再起動はそれぞれシャットダウンと再起動です)

9. 起動が成功したかどうかを判断する

ターミナルに「ps -e|grep ssh」と入力して、正常に起動したかどうかを確認します。sshd がある場合は、正常に起動したことを意味します。

出力は次のようになります。

$ sudo ps -e | grep ssh

 4031 ? 00:00:00 sshd------サーバ側のsshdに対応し、sshサーバが起動していることを示します

10. コンテナを終了するが、シャットダウンしない

exit (exec コマンドでコンテナに入るため、exit ではコンテナは終了せず、コンテナはバックグラウンドで実行されます)

11 リモート接続

ssh ルート@ホストID -p 8008

これで、サーバーの Docker コンテナへの vscode リモート接続を設定する方法についての記事は終了です。より関連性の高い vscode リモート接続の Docker コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerは安全なTLSリモート接続アクセスを可能にします
  • Docker は 2003 年の問題を解決するために MySQL リモート接続を導入しました
  • TLS暗号化通信を使用してDockerにリモート接続する詳細な例
  • Docker で MySQL をインストールし、リモート接続を実装するチュートリアル
  • Docker はリモート接続のサンプルコードを実現するために MySQL をデプロイします
  • dockerデーモンのリモート接続設定の詳しい説明
  • Dockerリモート接続設定の実装例

<<:  HTML割引価格計算の実装原理とスクリプトコード

>>:  レスポンシブWebデザイン学習(2) — 動画をレスポンシブにすることはできるのか?

推薦する

Javascript 非同期プログラミング: Promise を本当に理解していますか?

目次序文基本的な使い方文法エラー処理プロミスチェーン呼び出し非同期と待機よく使われる方法1. Pro...

MySQL 論理バックアップとリカバリ テストの概要

目次1. データベース論理バックアップとはどのようなバックアップですか? 2. よく使われる論理バッ...

最も完全な 50 の MySQL データベース クエリ演習

このデータベース クエリ ステートメントは、インターネット上の 50 個のデータベース クエリ練習問...

HTTPS の有効化に関する経験の共有

国内のネットワーク環境が悪化し続ける中、さまざまな改ざんや乗っ取りが後を絶たず、サイト全体をHTTP...

Webデザインチュートリアル(7):Webデザインの効率化

<br />前の記事:Webデザインチュートリアル(6):デザインへの情熱を持ち続けまし...

DockerとVMwareの競合を解決する

1. Dockerの起動の問題:問題は解決しました: Hyper-V をオンにする必要があります (...

Vue ルーティング this.route.push ジャンプ ページが更新されない場合の解決策

Vue ルーティング this.route.push ジャンプ ページが更新されない1. 背景概要:...

JavaScript メッセージ ボックスの例

JavaScript では、警告ボックス、確認ボックス、プロンプト ボックスの 3 種類のメッセージ...

MySQLデータベーストリガーの詳細な説明

目次1 はじめに2 トリガーの紹介3 トリガーを作成する4 トリガーを表示5. トリガーの削除6 結...

Bootstrap5 ブレークポイントとコンテナの具体的な使用法

目次1. Bootstrap5 ブレークポイント1.1 モバイルファースト1.2 ブートストラップブ...

MySQLのレプリケーションの詳細な分析

1.MySQLレプリケーションの概念これは、プライマリ データベースの DDL および DML 操作...

LinuxでLVMディスクを拡張する詳細な手順

1.ハードディスクを追加する2. パーティションの状態を確認します: fdisk -l 3. パーテ...

JPG、GIF、PNGなどのさまざまな画像形式の詳細な説明

ウェブページ上の画像が一般的に jpg、gif、png 形式であることは誰もが知っています。それらの...

Javascript Bootstrapのグリッドシステム、ナビゲーションバー、カルーセルの詳細な説明

目次ブートストラップと関連コンテンツの紹介グリッドシステムネストされた列列オフセット列の並べ替えナビ...

WeChatミニプログラムで検索キーワードを強調表示するサンプルコード

1. はじめにプロジェクトで要件に遭遇したら、データを検索してキーワードを強調表示します。要件を受け...