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

推薦する

sqlite を mysql スクリプトに移行する方法

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 パーレル # # https:/...

MySQLでルートユーザーのパスワードを変更する方法

方法1: SET PASSWORDコマンドを使用する mysql> username@loca...

Podmanはコンテナを自動的に起動し、Dockerと比較します

目次1. podmanの紹介2. Dockerと比較した利点3. 互換性4. バックグラウンド サー...

mysql 5.7.19 最新バイナリインストール

まず、公式ウェブサイト http://dev.mysql.com/downloads/mysql/ ...

IframeとFRAMEの違いの分析

1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...

CSSラベル表示モードについて1つの記事で学ぶ

タグの種類(表示モード) HTML タグは、一般的にブロック タグとインライン タグの 2 種類に分...

divは、自動入力スタイルをブロックする入力ボックスとして入力を使用せずにコンテンツを入力できます。

今日、私は公開用の動的なウィンドウ スタイルを設計しましたが、マウスで入力をクリックしたときにブラウ...

CSS ワールド - コード実践: 画像の Alt 情報の表示

ただし、デフォルトの src を持つ <img> 要素を使用してスクロール読み込み効果を...

CentOS 8が利用可能になりました

CentOS 8 が利用可能になりました! CentOS 8 と RedHat Enterprise...

Vue で eslint 検出をオフにする方法 (複数の方法)

目次1. 問題の説明2. 問題解決1. 問題の説明Vue プロジェクトを開発する場合、作成時に誤って...

WeChatアプレットが9マスグリッド効果を実現

この記事では、WeChatアプレットの9マスグリッド効果を実現するための具体的なコードを参考までに紹...

Node.js を使用して C# のデータ テーブル エンティティ クラス生成ツールを作成する方法

Microsoft は T4 テンプレートを提供していますが、使用するのが非常に難しいと思います。ス...

Reactプロジェクトの新規作成からデプロイまでの実装例

新しいプロジェクトを始めるこの記事では主に、新規プロジェクトを0から1まで取り組むプロセスを記録し、...

CSSリストのスライドにより、下部に隠れるのを防ぎ、長い画面モデルの処理に適応します。

1. モバイル端末がリストスライドを処理するとき、WeChat には下部にページに戻るボタンが組み...