スキップしてメイン コンテンツに移動

Docker for Macをインストール

DockerをHomebrewでインストールします。以下のコマンドを入力してDockerをインストールします。

ちなみに、「Docker=ドッカー」と読みます。

brew install docker

続いて、DockerのGUIアプリケーションをインストールします。以下のコマンドを入力します。

brew cask install docker

インストール完了後、「docker was successfully installed!」が表示されれば、インストール成功です。

「docker was successfully installed!」が表示されれば、インストール成功

Docker for Macを起動する

インストールが完了すると、MacのアプリケーションにDockerのアプリが追加されます。アイコンをダブルクリックしてDockerを起動しましょう。

MacのアプリケーションにDockerのアプリが追加されます

初回起動時のみ、次のイメージのような警告メッセージが表示されます。 [開く] をクリックしてアプリを起動しましょう。

警告メッセージで開くをクリック

いくつか確認メッセージが出た後、管理者パスワードの入力を求められるので、入力しましょう。

管理者パスワードを入力する画面

Dockerが起動されると、MacのメニューバーにDockerのアイコンが表示されます。また、起動と同時にDocker Hubのアカウントを求められますので、ログインしておきましょう。Docker Hubアカウントを持っていない場合は、こちらからアカウントを作成してください。

enter image description here

メニューバーのDockerのアイコンをクリックすると、Dockerのメニューが表示されます。Docker起動中は、次のイメージのように 「Docker Ddesktop is running」 と表示されます。

enter image description here

コンテナを起動する

Dockerを起動したら、基本の「hello-world」コンテナを起動してみましょう。以下のコマンドを入力してコンテナを起動します。

docker run hello-world

以下のようの「Hello from Docker!」と表示されれば、起動成功です。

hello-worldコンテナ起動後の画面

Docker for Macを終了する

Docker for Macを終了するには、メニューバーから [Quit Docker Desktop] を選択します。

Docker for Macを終了するには、メニューバーから Quit Docker Desktopを選択

Dockerコンテナを停止する

先述した「hello-world」コンテナは、起動時にメッセージを表示してすぐに停止するため、明示的に停止する必要はありませんでした。しかし、nginxなどのコンテナの場合、明示的に停止コマンドを発行するまで、コンテナは起動し続けます。

コンテナを停止するには、以下のコマンドを使用します。

docker stop <CONTAINER ID>

停止するコンテナのCONTAINER IDを検索する

停止するコンテナの<CONTAINER ID>が分からない場合は、次のコマンドで探します。

docker ps

Dockerのコンテナを削除する

コンテナの削除には、以下のコマンドを使用します。削除するコンテナの<CONTAINER ID>を指定してコンテナを削除します。

docker rm <CONTAINER ID>

削除するコンテナのCONTAINER IDを検索する

削除するコンテナの<CONTAINER ID>が分からない場合は、docker psを使用します。。-aオプションを付けると、停止中のコンテナも検索できます。

docker ps -a

【docker psの実行結果】

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
a507ad98e180        hello-world         "/hello"            15 hours ago        Exited (0) 15 hours ago                       relaxed_lewin

すべてのコンテナを削除する

コンテナの起動を繰り返していると、知らぬ間にコンテナが大量に作成され、docker ps -aでコンテナ一覧を確認すると、大変なことになっている事がよくあります。そんな時に便利なのが、すべてのコンテナを削除するコマンドです。

以下のコマンドを入力する事で、Dockerのすべてのコンテナを削除できます。

docker rm $(docker ps -aq)

Dockerのイメージを削除する

docker rmでコンテナを削除しただけでは、Dockerイメージまでは削除されません。Dockerのイメージをするには、以下のコマンドを使用します。<IMAGE ID>を指定してコンテナを削除します。

docker rmi <IMAGE ID>

削除するイメージのIMAGE IDを検索する

削除するコンテナの<IMAGE ID>が分からない場合は、次のコマンドで探します。

docker images

【docker imagesの実行結果】

REPOSITORY       TAG        IMAGE ID        CREATED             SIZE
hello-world      latest     fce289e99eb9    6 months ago        1.84kB

イメージの削除時にエラーになる場合

docker rmiコマンドでイメージを削除する時に、以下のようなエラーが表示されることがあります。このメッセージは、削除するイメージのコンテナが、起動または停止中で残っている場合に表示されるメッセージです。

Error response from daemon: conflict: unable to delete fce289e99eb9 (must be forced) - image is being used by stopped container 9f128e7b5c6b

強制的にイメージを削除する場合は、force(-f)オプションをつける事で削除できます。

docker rmi -f <IMAGE ID>

すべてのイメージを削除する

Dockerからすべてのイメージを削除するには、以下のコマンドを使用します。
全部消えるので、注意して使いましょう。

docker rmi -f $(docker images -q)

Docker for Macでよく使うコマンド

ここからは、Docker for Macでよく使うコマンドを紹介していきます。

Dockerのバージョンを確認する

Dockerのバージョンを確認するコマンドです。

docker --version

起動中のコンテナを表示する

Dockerで起動中のコンテナの一覧を表示するコマンドです。

docker ps

【実行結果】

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES

「hello-world」コンテナは、メッセージを表示したら終了するコンテナのため、起動中のコンテナには表示されません。

停止中のコンテナも含めてコンテナの一覧を表示する場合、-aオプションを指定します。

docker ps -a

【実行結果】

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
a507ad98e180        hello-world         "/hello"            40 seconds ago      Exited (0) 38 seconds ago                       relaxed_lewin

保存されたコンテナイメージを表示する

ローカル環境に保存した、コンテナイメージを一覧表示するコマンドです。

docker images

【実行結果】

REPOSITORY    TAG     IMAGE ID      CREATED       SIZE
hello-world   latest  fce289e99eb9  6 months ago  1.84kB

Dockerの情報を取得する

Dockerについての情報を取得するコマンドです。

docker info

【実行結果】

Containers: 3
 Running: 0
 Paused: 0
 Stopped: 3
Images: 1
Server Version: 18.09.2
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
~~以降省略~~

終了時にコンテナ自動的に削除 (–rm)

終了時にコンテナを自動的に削除するには、--rmを使用します。このオプションを指定するとdocker ps -aで消されずに残っているコンテナが大量発生するのを防げます。

docker run -it --rm ubuntu /bin/bash
スポンサーリンク
スポンサーリンク
スポンサーリンク

コメント

このブログの人気の投稿

axiosの使い方まとめ (GET/POST/例外処理)

axiosの使い方まとめ (GET/POST/例外処理)最近何かとよく使うJavaScriptでAJAX通信を行うaxiosについて、簡単に使い方をまとめました。GETリクエストをaxiosで送るまずはGETリクエストをaxiosで送る方法です。const res =await axios.get('/users') console.log(res.data)分割代入の記法を使うと、以下のようにも書けますconst{data}=await axios.get('/users') console.log(data)クエリパラメータ (URLパラメータ)を指定クエリパラメータを指定する方法は2つあります。1つ目は、axios.getに指定するURLに直接記述する方法です。axios.get('/user?id=123')2つめは、axios.getの第2引数に、オプション指定する方法です。axios.get('/user',{ params:{ id:123}})POSTリクエストをaxiosで送る次はPOSTリクエストをaxiosで送る方法です。JSON形式でPOSTするJSON形式でPOSTする場合は、axios.postの第2引数に、送信するデータをJavaScriptオブジェクトで指定します。const res =await axios.post('/user',{ id:123, name:'Yamada Tarou'})application/x-www-form-urlencoded形式でPOSTするapplication/x-www-form-urlencoded形式でPOSTする場合は、URLSearchParamsを使います。var params =newURLSearchParams() params.append('id',123) params.append('name','Yamada Tarou')const res =await axios.post('/user', params)axios でファイルをアップロードする画像などのファイルを、axiosでアッ…

[VB, C#] Windows 8, Window 10 で ImeModeが制御できない問題を解決する

[VB, C#] Windows 8, Window 10 で ImeModeが制御できない問題を解決するタイトルの通りですが、Windows 8 以降では Windows Form アプリケーションで、コントロールの ImeMode に Katakana や KatakanaHalf を設定しても、カタカナになってくれません。なぜ ImeMode が効かないのか?Windows 8 以降、IME Mode の切り替えは、ユーザー単位で切り替わるようになった為、アプリから IME Mode 制御が出来ないようになりました。
(IME をON にした場合、常に ひらがな モードになます)※ Windows 7までは、IME Modeの切り替えはアプリ単位で行われていた為、問題なくアプリから IME制御が行えました。対処方法Windows 8 以降、IMEの制御は、InputScope クラスの利用が推奨されています。
しかし、InputScope クラスは、WPF、Windows ストアアプリでしか使えない為、Windows Formアプリでは使用できません。
(Windows Form はもう使うな!という事でしょうか (涙) )結論としては、コントールパネルの設定で、IMEの制御をユーザ単位から アプリ単位に変更する事ができます。
これで、Windows Formアプリでも 従来通りIMEの制御を行う事が出来ます。おわりにこの方法だと、アプリをインストールする端末すべてに設定が必要となり、とっても面倒です。。。
しかし、今の所これしか方法がない状態です。
これからは Windows Formではなく、WPFや Windows ストアアプリで作れという事ですかね (^^;)

MailKitの使い方! エンコーディング指定や添付ファイをメールで送信する方法[C#/VB Tips]

MailKitの使い方! エンコーディング指定や添付ファイをメールで送信する方法[C#/VB Tips]MailKitを使ってメールを送るサンプルコードです。(C#)UTF8/iso-2022-jpのエンコーディング指定、GMail/YahooのSMTPサーバで送るなど、4つのサンプルコードでMailKitの使い方を紹介します。MailKitって何?2017年に.NET標準のSystem.Net.Mail.SmtpClientが廃止予定となり、Microsoftより今後はオープンソースライブラリである、MailKitに置き換えるとアナウンスがありました。既にSmtpClientは非推奨になっており、今後は廃止されていきます。現在、SmtpClientを使用したソースコードには、Visual StudioからMailKitを使うよう警告が出るようになっています。さっそく、MailKitを使ってメールを送信するサンプルコードを作っていきます。UTF8でメールを送信文字エンコーディングを、UTF8でメールを送信するサンプルコードです。
MailKitは、デフォルトの文字エンコーディングがUTF8なっている為、シンプルなコードでメールを送信する事ができます。var host ="<smtp server name>"; var port =25;// or 587using(var smtp =new MailKit.Net.Smtp.SmtpClient()){//SMTPサーバに接続する smtp.Connect(host, port, MailKit.Security.SecureSocketOptions.Auto);//認証が必要な場合は、以下のコメントを解除//smtp.Authenticate("<id>", "<password>");//送信するメールを作成する var mail =new MimeKit.MimeMessage(); var builder =new MimeKit.BodyBuilder(); mail.From.Add(new MimeKit.MailboxAddress("",&quo…