所属する会社で、DockerとKubernetesの勉強会があります。
私はエンジニアではないので、
業務でDockerとかK8sを使うことはほとんどないけど、
会社サービスのお話をするときに、
Dockerがなぜ革新的なのかとか、
どんなときに役立つ技術なのかっていうのを知っておかなきゃいけないってことで、
ちょこちょこと業務外のお時間に勉強会に参加させてもらうことにしました。
※AWSの勉強会などもあります。
AWSの勉強会のようにカラフルな画面(WEBサービスの画面)を見ながらやるのは心がウキウキするし、そこまで事前知識がいらないのだけど(自分が勉強しているレベルだとまだ)、黒い画面みながら勉強するのは嫌い。。
※っていうか、何も基礎知識がないので、
エンジニアの人たちが当たり前に発する言葉が分からない。
みんなが話すことを理解するため、
お勉強。。
ということで、いろいろ間違っていることもあると思うのですが、
備忘録として以下記載。
##ステップ1:スクリプトが何かわからない
会社から指定された教材を読むと、
スクリプトを用意して、これをアプリケーションとします。
みたいなことがさらっと書かれているのですけど、
え、スクリプトって基本的に何で作るの????状態。
(こちらは、超絶簡単なHTML5とPHPくらいしかしらない)
#!/bin/sh echo "Hello, World!"
って書かれているので、
とりあえず、#!/bin/sh
を検索。
どうやらシェルスクリプトっていうものらしい。
とりあえずドッカーの操作だったり、ドッカーに入れるアプリケーションを作るのに、
シェルってものをちょっとは理解しないと、
黒い画面を使うのには苦労しそうということで、
今回は、シェルについてお勉強。
##ステップ2:シェルが何かわからない
ふむふむ、このシェルっていうものは、
OSの偉い人とお話する言語ってことね。
あー、ownCloudの操作するときに、
ぜんぜんよくわからず、ls とか、cdとか、cpとか使ってたけど、これのことなのかな??
Linuxコマンドはシェルスクリプトってことだね!
(よくわかんないけど、とりあえず自分なり解釈で先に進む。)
なんかいろいろ黒い画面の呼び名はあるけど(コンソールとかターミナルとか)、
この黒い画面でお話するよう。
とりあえずシェルを動かしてみたいってことで。
Windowsのローカルでシェルを動かす方法を探し始める。
しかし、このとき、そもそもシェルにはいろんな種類があること知らなかった。。。
##ステップ3:シェルってWindowsでは動かないの?
Windowsの黒い画面といえば、コマンドプロンプト!
ということで、コマンドプロンプトを表示して、
冒頭に書いた、
シェルスクリプトを実行させようとするも。。。。
あ。。
なんか画面が違う。。。
よくLinuxの黒い画面でみる、
$とか#がいない。。。。。
yahoo知恵袋とかみると、
そりゃbashがねーから、当たり前だよ!みたいなコメントが。
(あ、そうなんですね)
やっと、シェルの中にもいろんな種類があって、コマンドが使えるものと使えないものとかがあるのだという理解。
方言みたいなものかね。
シェル標準語+シェル方言みたいな。(違うかもしれない)
ということで、
Windowの中でも、Linuxを動かすbashっていうシェル方言を動かす方法がないか検索。
##ステップ4:Windows Subsystem for Linuxにやっとたどり着く!
どうやらWindows環境でもLinuxが使えように少し前になったよう。
以下のQiita参考にさせていただきました
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb
エクスプローラのパスが表示される場所(名前が分からない。。)で
bash
って入力しても操作できました。
##ステップ5:シェルを実行してみよう
とりあえず、一番最初の、
hello worldって表示させるスクリプトを
bashで作るって宣言して
.sh拡張子で保存するスクリプトのやつ。。。
こちらを作成。
#!/bin/sh echo "Hello, World!"
で、windowsのローカルに保存。。。
。。。。。
で。。。??
。。。
( ゚Д゚)
。。。
実行方法わからず。。。。
WindowsとWSL間のファイルのやりとり不明。。。。
(ああああ、普通に考えればわかったはずだけど、ここまで気づかず)
作ったは良いけどWSLへファイルの転送方法不明。。。
ローカルのWSLに接続するクライアントソフトみたいなものってあるのかな?
で、結局よくわかんないから、WSL上で作っちゃえーということで
touch と viコマンドで新規ファイルをWSL上に作成。
これだけで、なんとなく達成感w
(こっちのほうが楽ー。結局、もともとの疑問は解決できず
この辺をきちんと理解していればOKだったのかも??
https://qiita.com/chez_sugi/items/fd2e5c39010daa858406 )
とりあえずDockerに入れるためのスクリプト(アプリケーションみなす)が完成し、実行までできました。
(つっても、Hello Worldが表示されるだけ)
やれやれ。
Dockerとは全然関係ないし、
WSLで実行しなくても良かったかもしれないけど、
非エンジニアはこんな感じで都度都度勉強しないと皆においつけません。
PHPとかでも、
同じようなことできるのに、
なーんで、シェルでもできるのだ。。。
アプリケーションを動かすのか、
バッチとか、制御とか、OSへの操作ってところで、
それぞれの意味合いが出てくるんだと思うけど、
もっとできることとできないことをバシバシと分けて、簡単にまとめてくれたらー。。と思うのでした。
気が向いたら、
Dockerイメージを作成するまでに、
えーとえーと、と思ったことをまとめるかもしれません。