サーバーの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) — 動画をレスポンシブにすることはできるのか?

推薦する

Web開発で使用される基本的な概念と技術の紹介

本日は、Web 開発で使われる基本的な概念と技術を初心者向けに紹介します。A から Z まで合計 2...

リンクをクリックしたときに表示される点線のボックスを削除するいくつかの方法

削除する方法はいくつかあります:リンクを直接追加するonfocus="this.blur(...

Linux zabbix エージェントの展開と設定方法の詳細な説明

1. web01にzabbix-agentをインストールするZabbix ウェアハウスをデプロイする...

Linux 向けの強化されたスクリーンショットと共有ツール: ScreenCloud

ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...

チェックボックスとラジオボタンの配置を実装する方法

ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...

MySQL インデックスの詳細な説明

目次1. インデックスの基本1.1 はじめに1.2 インデックスの仕組み1.3 インデックスの種類1...

NextCloud プライベート クラウド ストレージ ネットワーク ディスクの構築に関する詳細なチュートリアル

Nextcloud は、オープンソースで無料のプライベート クラウド ストレージ ネットワーク ディ...

Sparkの紹介とHadoopとの比較

目次1. SparkとHadoopの比較1.1 Haoopの欠点1.2 Hadoop MR に対する...

Linux環境にRedisをデプロイし、Dockerにインストールする方法

インストール手順1. Redisをインストールするdocker search redis和docke...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

js 基本構文と Maven プロジェクト構成チュートリアル ケース

目次1. jsステートメント2番目、js配列3. js関数4. メイヴンV. 結論1. jsステート...

Linux での Makefile の書き方と使い方の詳細な説明

目次メイクファイルMakefile の命名とルールMakefile の仕組みMakefile変数Ma...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

WeChatアプレットタブの左右スライドスイッチ機能実装コード

効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...

MySQL CHARとVARCHARの保存と読み取りの違い

導入保存時と読み取り時に CHAR 型と VARCHAR 型の違いを本当にご存知ですか?まずいくつか...