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

推薦する

Linux での MySQL 5.7.19 のインストールに関する問題の概要

初めて仮想マシンに MySQL をインストールしたとき、多くの問題が発生しました。ここでそれらを書き...

CSS での配置の使用方法の詳細な研究 (要約)

CSS における位置指定の概要position属性は英語で位置を意味し、 CSSでの主な機能は要素...

Docker の Windows ストレージ パス設定操作

Windows 10 に Docker をインストールする場合、コンテナタイプを Linux コンテ...

MySQLインスタンスクラッシュ事例の詳細な分析

[問題の説明]私たちの実稼働環境には、複数の MySQL サーバー (MySQL 5.6.21) の...

Vueは大画面ページのスクリーン適応を実現します

この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...

MySQL、Oracle、SQL Server のページングクエリ例の分析

最近、Oracle、MySQL、SQL Server 2005 のデータ ページング クエリについて...

Linuxで中断されたシステムを呼び出す方法

序文低速システム コールとは、決して戻らない可能性があり、プロセスを永久にブロックするシステム コー...

CSS 手法を使用してモジュール性を実現する例

1. CSS 方法論とは何ですか? CSS methodologiesデザイン パターンまたは CS...

Linuxコマンドのファイル上書きとファイル追加の詳細な説明

1. コマンド > と >> の違いコマンド>: ファイルが存在する場合は、...

ネイティブJSを使用した遅延読み込みlazyLoadの3つの方法の概要

目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...

jsのディープコピーを理解しましょう

目次js ディープコピーデータ保存方法浅いコピー/深いコピーとは何か一般的なディープコピーの実装1....

MySQL 8.0.12 のインストールと設定のチュートリアル

この記事はMySQL 8.0.12のインストールと設定に関する詳細なチュートリアルを記録しています。...

Linuxでファイルの作成時間を表示する方法

1. はじめにLinux でファイルの作成時刻が見つかるかどうかは、ファイル システムの種類によって...

JavaScriptで計算機機能を実現するプロセスの詳細な説明

目次1. 電卓機能の紹介2. 計算機ページのデザイン1. ナビゲーションバー2. データ部分3. i...

CentOS7でFTPサーバーを設定する方法

FTP は主にファイル転送に使用され、Linux では vsftpd で実装されるのが一般的です。F...