Submit Search
Upload
WSL2+docker+JupyterとVS Codeリモート環境の構築
•
0 likes
•
734 views
S
Saito5656
Follow
グループ内の個人用PCにローカル環境構築するためのハンズオン資料です、この先クラウドメインになったらまた講習資料つくります
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 27
Download now
Download to read offline
Recommended
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
Recommended
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
REST API のコツ
REST API のコツ
pospome
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
Railsで作るBFFの功罪
Railsで作るBFFの功罪
Recruit Lifestyle Co., Ltd.
30分で分かる!OSの作り方
30分で分かる!OSの作り方
uchan_nos
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
レコメンド研究のあれこれ
レコメンド研究のあれこれ
Masahiro Sato
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
Guide To AGPL
Guide To AGPL
Mikiya Okuno
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
Kunihiro TANAKA
More Related Content
What's hot
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
REST API のコツ
REST API のコツ
pospome
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
Railsで作るBFFの功罪
Railsで作るBFFの功罪
Recruit Lifestyle Co., Ltd.
30分で分かる!OSの作り方
30分で分かる!OSの作り方
uchan_nos
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
レコメンド研究のあれこれ
レコメンド研究のあれこれ
Masahiro Sato
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
Guide To AGPL
Guide To AGPL
Mikiya Okuno
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
What's hot
(20)
Docker Compose 徹底解説
Docker Compose 徹底解説
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
REST API のコツ
REST API のコツ
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Railsで作るBFFの功罪
Railsで作るBFFの功罪
30分で分かる!OSの作り方
30分で分かる!OSの作り方
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
レコメンド研究のあれこれ
レコメンド研究のあれこれ
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
Guide To AGPL
Guide To AGPL
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Similar to WSL2+docker+JupyterとVS Codeリモート環境の構築
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
Kunihiro TANAKA
Docker Swarm入門
Docker Swarm入門
Masahito Zembutsu
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
VirtualTech Japan Inc.
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
Toru Miyahara
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
npsg
Docker調査20150704
Docker調査20150704
HommasSlide
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
Masahide Yamamoto
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
VirtualTech Japan Inc./Begi.net Inc.
Circle ci and docker+serverspec
Circle ci and docker+serverspec
Tsuyoshi Yamada
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Naoki Nagazumi
20150101勉強会 dokku alt
20150101勉強会 dokku alt
Shugo Numano
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
VirtualTech Japan Inc.
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
VirtualTech Japan Inc.
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
Dockerと継続的インテグレーション
Dockerと継続的インテグレーション
Yahoo!デベロッパーネットワーク
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
コンテナ情報交換会2
コンテナ情報交換会2
Masahide Yamamoto
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
Ryo Nakamaru
Similar to WSL2+docker+JupyterとVS Codeリモート環境の構築
(20)
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
Docker Swarm入門
Docker Swarm入門
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
Docker調査20150704
Docker調査20150704
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
Circle ci and docker+serverspec
Circle ci and docker+serverspec
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
20150101勉強会 dokku alt
20150101勉強会 dokku alt
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Dockerと継続的インテグレーション
Dockerと継続的インテグレーション
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
コンテナ情報交換会2
コンテナ情報交換会2
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
WSL2+docker+JupyterとVS Codeリモート環境の構築
1.
WSL2+docker+Jupyterと VS Codeリモート環境の構築 2020.11.3 @Saito56565656
2.
このハンズオン資料について • WSL2インストール 【参考】https://www.atmarkit.co.jp/ait/articles/2008/31/news023.html • ssh設定 【参考】https://blog.mihyaeru.com/2020/06/28/wsl2-ssh/ 【参考】https://qiita.com/gengen16k/items/18262af0781fd32fc9cd •
Docker Dessktopのインストール 【参考】https://www.docker.com/ 【参考】https://qiita.com/KoKeCross/items/a6365af2594a102a817b • Jupyter-Lab imageのビルドと実行 【参考】https://qiita.com/komiya_____/items/96c14485eb035701e218 【参考】https://qiita.com/ss_33_sss/items/b018e55834f21d1a593d ☞ 理屈はさておき、docker上でJupyter-Lab(Python機械学習環境)の最速立上げ手順 ☞ 仮想上directoryとPCフォルダーをbindしwindows上でファイル保存する環境構築手順 ☞ VSCodeでのnotebook利用方法 【謝辞】Blog著者の皆様ありがとうございました 説明すること ☞ windows shellとLinuxとdockerの基礎知識、コマンドの役割 ☞ VSCodeの初期設定、使用方法 ☞ Pythonの文法、基礎知識 説明しないこと(手を動かして自分で調べましょう)
3.
WSL2のインストール
4.
WSLのインストール • 「コントロールパネル」⇒「プログラムと機能」を開く • 「Windowsの機能の有効化または無効化」をクリック •
「Linux用Windowsサブシステム」にチェックを入れて「OK」をクリック • Windowsを再起動する 【参考】WSL2とは: https://www.atmarkit.co.jp/ait/articles/1906/14/news019.html
5.
Ubuntuのインストール • Microsft Storeで「wsl」と検索 •
「Ubuntu」を選択して「インストール」 • インストールが完了するとUbuntuが立上るので「UNIX username」「New password」 を入力してユーザー初期設定する
6.
仮想マシン有効化 • 「コントロールパネル」⇒「プログラムと機能」を開く • 「Windowsの機能の有効化または無効化」をクリック •
「仮想マシン プラットフォーム」にチェックを入れて「OK」をクリック • Windowsを再起動する
7.
• コマンドプロンプトより「wsl.exe –l
-v」と入力しWSLのVERSIONを確認 • VERSIONは1のはずなので「wsl.exe --set-version Ubuntu 2」と入力 • 「WSL 2を実行するには、カーネルコンポーネントの更新が必要です」が表示されたら、 https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel⇒「wsl_update_x64.msi」 をダウンロードして実行 • 再度「wsl.exe --set-version Ubuntu 2」を実行して「wsl.exe –l -v」でVERSION確認 変らなかったら再起動してVERSION再確認 UbuntuをWSL2用に変換
8.
• 再度「wsl.exe --set-version
Ubuntu 2」と入力して下記メッセージが出たら または「 Windowsの機能の有効化または無効化」で「仮想マシンプラットフォーム」 が表示されない場合、BIOSの仮想化支援機能を有効化する • BIOSで有効化する項目は intel CPU: VT-x VT-d AMD CPU: AMD-V(UEFI上ではSVM Mode、CPU Configurationにある) IOMMU(Advanced>AMD CBS>NBIO Common Options等、深い場所) 【参考】 https://jp.finalfantasyxiv.com/lodestone/character/6584870/blog/4364798?order=2 仮想化支援機能の有効化が必要な場合
9.
ssh設定
10.
※ssh接続しなくてもコンテナのVSCodeリモート接続に支障はないが設定しておく • Ubuntuターミナルを起動して「/etc/ssh/sshd_config」を開く (nanoならsudo nano
/etc/ssh/sshd_config) • 「PasswordAuthentication」がnoだったらyesにして保存 • 以下のスクリプトをWindowsで起動時実行するバッチファイルとして作成(コピペ可) wsl -d Ubuntu -u root exec service ssh restart for /F %%i in (‘wsl -d Ubuntu exec hostname -I’) do set ip=%%i netsh interface portproxy delete v4tov4 listenport=22 netsh interface portproxy add v4tov4 listenport=22 connectaddress=%ip% • バッチファイルを任意の場所に保存 WSL2のssh設定①
11.
WSL2のssh設定② • 「スタートメニュー」⇒「タスクスケジューラー」⇒「タスクの作成」を開く • 全般タグは、任意の名前を付けて「最上位の特権」をチェック、構成はWindows10 •
トリガータグは、新規作成から「タスクの開始」を「スタートアップ時」に設定 • 操作タグは、新規作成から「プログラム/スクリプト」に先ほどのバッチファイルを設定 • 設定タグは、念のため再起動間隔を1分間/3回で設定
12.
Docker Dessktopのインストール
13.
Docker Desktopのインストール • https://www.docker.com/get-startedより「Windows用にダウンロード」をクリック •
「Enable WSL 2 Windows Features 」をチェックしたままインストールを続ける • インストール完了後に「setting」⇒「General」でWSL2 engineが有効なのを確認 • 「setting」⇒「Resources」⇒「WSL INTEGRATION」でUbuntuをonにしてRestart
14.
Jupyter-Lab imageのビルドと実行
15.
Jupyter-Lab imageのビルド • 作業フォルダを作成し機械学習環境imageをビルドする為のDockerfileを配置 •
作業フォルダに移動してimageをビルド(作業フォルダはDockerfileで指定するdir名) $ mkdir docker && cd docker $ sudo nano Dockerfile $ docker build -t {任意のimageファイル名} . ← . は忘れないように home ubuntuのusername docker etc Dockerfile # ベースイメージ名:タグ名 FROM continuumio/anaconda3:2019.03 # アップグレード・インストール RUN pip install --upgrade pip && ¥ pip install autopep8 && ¥ pip install numpy && ¥ pip install pandas && ¥ pip install matplotlib && ¥ pip install xlsxwriter && ¥ pip install Keras && ¥ pip install tensorflow # コンテナ側:{username}はubuntuのusername、user rootの下の{docker}というフォルダをWORKDIRに指定 WORKDIR /home/{username}/docker # コンテナ側のリッスンポート番号 EXPOSE 8888 # ENTRYPOINT命令はコンテナ起動時に実行するコマンドを指定(基本docker runの時に上書きしないもの) # “jupyter-lab” => jupyter-lab立ち上げコマンド # “—ip=0.0.0.0” => ip制限なし # “—port=8888” => EXPOSE命令で書いたポート番号と合わせる # ”—no-browser” => ブラウザを立ち上げない、コンテナ側にはブラウザがない # “—allow-root” => rootユーザーの許可、セキュリティ的に良くないので自分で使うとき限定 # “—NotebookApp.token=‘’” => トークンなしで起動許可、これも警察に怒られる ENTRYPOINT [“jupyter-lab”, “—ip=0.0.0.0”, “—port=8888”, “—no-browser”, “—allow-root”, “—NotebookApp.token=‘’”] # CMD命令はコンテナ起動時に実行するコマンドを指定 # “—notebook-dir=/workdir” => Jupyter Labのルートとなるディレクトリを指定 CMD [“—notebook-dir=/home/{username}/docker”] Dockerfileは以下の{username}を各自書き換えてコピペ作業フォルダ名をdockerにする場合 必要に応じてパッケージは追加・削除 { }は不要、念のため
16.
Jupyter-Lab imageの実行 • ビルドしたdocker
imageを実行する • 右のメッセージが出たら成功 • ブラウザーで「localhost:8888」と入力し起動を確認 以下の{}内を各自書き換えてコピペ $ docker run -it -p 8888:8888 --rm --name my-lab --mount type=bind,src=/mnt/c/Users/{winPCのユーザーフォルダ名}/{任意の作業フォルダ 名},dst=/home/{username}/docker {自分がbuildしたコンテナimage名} src=以下はPC側の作業(保存)フォルダー、ubuntu側からbindで/mnt以下にぶら下がる dst=以下は仮想マシンの作業(保存)フォルダー、
17.
VS Codeからcontainerへ接続
18.
VS Code拡張機能インストール • 「
Ctrl-Sihft-x」(拡張機能)から「remote」と入力 • Remote Developmentをインストール 拡張機能の検索窓に 「remote」と入力 インストール
19.
• Ubuntuターミナルでdocker runした状態で リモートウィンドウボタンをクリック •
Remoto – Container: Attach to Running Container…を選択 コンテナに接続
20.
• 先ほどdocker runしたコンテナが表示されるので選択 コンテナに接続 しばらくすると接続が完了する新しいウィンドウが開く
21.
• 「 Ctrl-Sihft-x」(拡張機能)から「python」と入力 •
Python拡張機能をコンテナ上にインストール コンテナにPythonをインストール
22.
コンテナに接続 • リモートエクスプローラーを開き PC作業フォルダ(保存先)と仮想作業dirがbindされてるのを確認 リモート エクスプローラー Dockerfileで指定したPCフォルダ名 (Source)と仮想作業Dir(Distination)が 表示されていることを確認
23.
作業dirを開く • エクスプローラーボタンを押して「フォルダを開く」から Ubuntu上の作業dirに移動する コンテナをdocker rnした Ubuntuフォルダ名を入力 エクスプローラー
24.
VS Codeから新しいnotebookを作成 • 「
Ctrl-Sihft-p」(コマンドパレット)から Python: Create Blank New Jupyter Notebookを選択 • しばらくすると新しいnotebookが立ち上がる
25.
サンプルcode実行 • 適当なグラフを描画してみる • ↓怒られたら再実行する sin_wave.py import
wave import numpy as np from matplotlib import pylab as plt import struct a = 1 # 振幅 fs = 500 # サンプリング周波数 f0 = 5 # 周波数 sec = 5 # 秒 swav = [] for n in np.arange(fs * sec): # sin波生成 s = a * np.sin(2.0 * np.pi * f0 * n / fs) swav.append(s) # 表示 plt.plot(swav[0:100]) plt.show()
26.
ファイルをbind先のPCフォルダに保存 • 名前を付けて保存したら、bindしたPCフォルダでも確認 保存 test_sampleで保存 Docker上の作業dir PC上の作業フォルダ
27.
VS Codeリモートの切断とコンテナ終了 • リモートを切断してVS
Codeを閉じてからdocker imageを停止 クリック リモート接続を終了後、VS Codeを閉じる Ubuntuターミナルで「Ctrl-C」⇒「y」で コンテナを停止
Download now