- 作者:山田 明憲
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/25
- メディア: 単行本(ソフトカバー)
目次
- 目次
- 背景・目的
- 参考資料
- 既存のDockerイメージの確認
- Ubuntuイメージをダウンロード
- コンテナの一覧を確認
- コンテナを作成
- Pythonをインストールしようとしたら
- wgetが無いと怒られた
- 今度こそPythonをインストール
- 2種類のログイン方法
- コンテナを起動・停止したいだけの時
- Ubuntu+Pythonイメージを作成
- 不要なコンテナの削除
- まとめ
背景・目的
こちらの記事で書いたように、つまらない事で
ハマりながらもWindows 10にDockerを
インストールしました。
www.eureka-moments-blog.com
今回は次のステップとして、イメージ作成や
コンテナ起動などの基本操作を試しながら
Linux環境の構築に取り組んでみたので、
そのメモを残しておきます。
参考資料
こちらの記事、そしてその他Docker関連の
記事ににて、Dockerの使い方を大変詳しく
丁寧に解説してくれているのを見つけました。
kitsune.blog
この記事を参考に、Dockerの基本操作を
試していく事にします。
既存のDockerイメージの確認
まずは、既存のDockerイメージを
確認してみます。コマンドは、
「docker images」です。実行
するとこちらのような出力が
表示されます。
事前にhello-worldコンテナを
起動させていたので、一覧の
中にhello-worldイメージが
あるのが分かります。
Ubuntuイメージをダウンロード
Linuxの中ではUbuntuを使い
たいので、Ubuntuのベース
イメージをこちらからダウン
ロードします。
お目当てのイメージがあるかは、
Docker Hub上で直接検索するか、
「docker search」コマンドで
PC側から検索する方法があり
ます。
例えば今回なら、コマンドの
引数にubuntuと入れれば、
それに関連するイメージの
一覧をこのように出力して
くれます。
いろいろな種類があるよう
ですが、とりあえず一番上
のやつが通常のUbuntuの
ようなので、それをダウン
ロードします。
現時点で最新かつ安定して
動作するバージョンは18.04
なので、「docker pull」の
コマンドでイメージと
バージョンをこちらのよう
に指定して実行します。
「docker pull ubuntu:18.04」
ちゃんとダウンロード出来たか
確認してみましょう。
このように、イメージ一覧に表示
されているので成功です。
コンテナの一覧を確認
コンテナの確認は「docker ps」
というコマンドで行います。
実行するとこちらのようになり
ますが、起動しているコンテナ
がないので何も表示されません。
そこで今度はオプションとして
「-a」を付けて実行すると、
これまでに起動してきたコンテナと
その状態が表示されます。
コンテナを作成
「docker run」コマンドでコンテナ
の作成・起動が出来るのですが、
コンテナに対するいろいろな設定を
施すためのオプションがあります。
どれが何なのかさっぱりだったの
ですが、こちらの記事にて分かり
やすくまとめられていたので、
とても助かりました。
「-p」オプションによるポート
フォワードについてはこちらの
記事が参考になります。
これらオプションを踏まえて、
「ubuntu:18.04」イメージから
「ubuntu_test」という名前で
コンテナを作成し、起動させて
みます。
ちゃんと起動できたか確認してみます。
一覧にちゃんと表示されているので、
起動出来ているようですね。
Pythonをインストールしようとしたら
OSが起動出来るようになったので、
次はプログラミング言語として
Pythonをインストールしてみます。
まずは、「docker exec」コマンドで
Ubuntuコンテナにログインします。
ログイン出来たので、お次はPythonが
デフォルトでインストールされている
か確認してみます。18.04からは最初
からPython3.6が入っているらしい
のですが、
このように、pythonコマンドが
見つからないので、どうやら
インストールされていないみたい
ですね。
なので、自力でインストールして
みます。こちらの記事を参考に
進めました。
各種ライブラリをインストールして
いくのも面倒なので、Anacondaを
インストールします。
wgetが無いと怒られた
「wget」コマンドでインストーラを
ダウンロードしようとしたら、こちら
のようになり怒られました。
どうやら、DockerのUbuntuイメージ
には、wgetコマンドが入っていない
ようなので、インストールする必要
があります。
お決まりの「sudo apt-get」を実行
しようとすると、
となり、「sudo」コマンドまでもが
インストールされていない事が分か
りました。なので、まずはこれら
2つのコマンドをインストールして
いきます。
まずは「sudo」から。
ちゃんとインストール出来ました。
お次は「wget」。
こちらもインストール完了。
ここでもう一度インストーラの
ダウンロードにトライします。
ちゃんとダウンロード出来ました。
今度こそPythonをインストール
ダウンロードしたAnacondaの
インストーラを起動します。
Enterを押して利用規約に目を通し、
yesを入力すると、こちらのように
インストール先を聞かれます。
特に指定する必要が無ければ、その
ままEnterを押してインストールを
開始させましょう。
一通りのインストール作業が実行
され、最後にAnacondaを初期化
するかの質問にyesと答えれば
こちらのようになり完了です。
バージョンも確認出来ました。
Pythonのバージョンも確認出来ま
した。
2種類のログイン方法
コンテナへのログイン方法は、
下記2種類のコマンドによる
ものがあります。
- docker exec
- docker attach
「exec」コマンドについては
先述した通りですが、コンテナ
の中で新しくbashプロセスを
起動するものであり、exitで
ログアウトした後も、コンテナ
自体は起動したままになります。
それに対して「attach」コマンド
は、標準入出力に接続するもの
であり、exitするとコンテナ自体
が停止します。
コンテナを起動・停止したいだけの時
毎回docker runでコンテナを起動
させると、その度に新しいコンテナ
が作られるので、いつの間にか
同じコンテナがどんどん増えて
しまいます。
新しいコンテナの作成が必要じゃ
ない時は、こちらの記事にある
ように、「docker start」で起動
し、「docker stop」で停止させ
るようにしましょう。
新しいコンテナの作成が必要じゃ
ない時は、こちらの記事にある
ように、「docker start」で起動
し、「docker stop」で停止させ
るようにしましょう。
Ubuntu+Pythonイメージを作成
ここまでの間に、ベースのUbuntu
イメージにwgetやsudoなどの
コマンドやPython 3.7をインストール
してきました。
ここらで一区切りして、同じ環境
を作る用のDockerイメージを作成
しておく事にします。
「docker commit」コマンドを
使い、「ubuntu1804-python374」
イメージを作成します。
このコマンドを実行して少し待つ
と、こちらのようにイメージが
作成されます。
イメージの一覧にもちゃんと表示
されている事が分かります。
ここで、このイメージを使って
コンテナを作成・起動し、期待
通りのものになっているか確認
してみましょう。
まずはコンテナを作成します。
次にコンテナを起動し、中に
AnacondaとPythonが
インストールされているか
確認してみます。
バージョンを確認出来たので、
無事に成功したようですね。
ここまで長かった。。
不要なコンテナの削除
既に作成したコンテナを削除
する時は「docker rm」コマンド
を実行します。ここまでに
作成してきたコンテナは下記
の通りになっています。
最初に作成したubuntu_testは
もう不要なので、これを削除
してみます。この時、対象の
コンテナは停止している必要
があります。
削除を実行し、コンテナの一覧
からも消えている事を確認
出来ました。
まとめ
また何度か躓きましたが、
イメージ・コンテナの
作成や起動、削除などの
基本操作を一通り学ぶ事が
出来ました。
次回は、もう一つのイメージ
作成方法であるDockerfileに
ついて学んでいきたいと
思います。