Dockerを動かすときはxamppのApacheとMysqlは止めたほうが無難
xamppのデフォルト設定は、Apacheはポート80番、MySQLはポート3306番を用いる。
Dockerも80ポートや3306ポートを使って開発環境を構築するケースがある。
同じポートを使うと競合してどちらかが使えなくなるので注意する。
どうしても共存させる場合は、xamppかDockerのどちらかでポート番号を変える必要がある。
xamppのMySQLが起動中だと、下記のようなエラーが発生する。
ERROR: for mysql Cannot start service mysql
ERROR: for mysql Cannot start service mysql: Ports are not available: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
Encountered errors while bringing up the project.
2020-12-1
Dockerとは
システムを動かす環境を容易に構築できる。(各種アプリを迅速に配備できる)
Linuxのコンテナ型仮想機能を利用している。つまり1つのサーバーに複数の環境を構築できる。
2013年に発表されLinuxで利用されている。
軽量である。(Windowsやmacは間に仮想環境が入ってくるので若干重い)
AWS、Google、AzureなどもDockerに対応している。
2017-11-21
Dockerネットワークとは
ローカル環境において、コンテナはホストのローカルIPアドレス、Dockerネットワーク名の組み合わせでできている。
Dockerネットワークはローカル環境においてはローカルIPアドレスとコンテナの紐づける存在。
各コンテナは仮想IPアドレス仮(想NIC)を保持してるが、その仮想IPアドレスのパターンはDockerネットワークの設定によって決まる。
Dockerネットワークにはbridge, none, hostの3種類があるが、bridgeが使われることが多い。
デフォルトではbridgeが使われる。
docker network lsコマンドでDockerネットワークの一覧を確認可能。
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
a24920520378 bridge bridge local
8fb76d054ec2 frontend_default bridge local
8967df4354b4 host host local
d6ffaa0b27d7 none null local
2020-12-3
Docker CE for Windowsをインストール
Docker CE for Windows → Docker Desktop for Windows
2019年11月の時点で「Docker Desktop for Windows」に変更されている。
ダウンロードする際、アカウント作成が求められるようになった。
インストールは道なりにボタンを押すだけ。
Hyper-Vに関する設定が面倒であったが自動でやってくれるようになったようだ。(PCの再起動が求められるなった?)
旧インストール手順
PC環境はWindows10,64bit。
Docker CE for Windowsのインストール手順
DockerのWindows用インストーラを入手するため、
公式サイト
にアクセスする。
インストーラは2種類あるが、「Stable channel(安定板)」側からインストーラ「Docker for Windows Installer.exe」をダウンロードする。
Docker for Windows Installer.exeを実行する。オプションの指定などはない。
Hyper-V機能が無効になっている場合、Hyper-V機能を有効にするようエラーメッセージが表示される。OKボタンを押してPCを再起動する。
エラーメッセージの和訳
Hyper-V機能が有効になっていません。
Dockerを正しく動作させるために有効にしますか?
コンピュータが自動的に再起動します。
補足:下図の方法で、Hyper-V機能を有効化することもできる。
PCを再起動直後にDockerからBIOS設定が必要とのエラーメッセージが表示されることがある。この場合、BIOSで仮想化を有効にする作業が必要になる。
エラーメッセージの和訳
仮想の有効化する手順は、BIOSの種類によって異なるが概ね下記の通りである。
PC起動直後にF2を連打しBIOSを起動
CPU関係の設定を開く
「Intel VT~」もしくは「Intel(R) Virtualization Technology」などと表記されている項目を有効に切り替える。
補足1:ASUSである場合、下記のサイトが参考になる。
https://amaotolog.com/amalog/38
補足2:BIOSの仮想化が有効/無効になっているかはタスクマネージャーで確認できる。
再起動で、Dockerのエラーが表示されなければ、インストール成功である。
Docker for Windowsアイコンをクリックして実行する。
何も起こらないが、しばらく待つと右下にDockerが使えるようになった旨のメッセージが表示される。
コマンドプロンプトを開き「docker info」とコマンドを入力する。エラーがでなければ成功である。PowerShell や Git Bash でもdockerを動かすことができる。
「プログラム 'docker' はまだインストールされていません。」と出たら失敗。
補足:環境パスにdockerパスが記述されている。
2017-11-21 | 2019-11-16
イメージについて
イメージはコンテナを生成する元である。
オブジェクト指向であれば、イメージはクラス、コンテナはインスタンスという感じの関係かと思われる。
イメージの置き場所
複数のイメージをDockerに保持することができる。
「
docker images 」コマンドでDockerで保持しているイメージを確認できる。
$ docker images
どこからイメージを取ってくるか?
Docker Hub
という他の人が作成したイメージをまとめたWebサイトが存在する。
Docker Hubから「
docker search 」コマンドを使い、イメージを検索することができる。
例「php」を検索する
$ docker search php
※ Dockerfileをビルドしてイメージを作成する方法もある。詳しくは後述。
イメージをどうやって取ってくるか?
「docker pull」コマンドでDocker Hub からイメージを引っ張ってきて取得できる。
例:phpmyadminのイメージを取得する
$docker pull phpmyadmin/phpmyadmin
例2:centosのイメージを取得する
取得したイメージを一覧表示してみる。
$docker image list
2017-11-22 | 2019-12-19
Dockerの基本 | イメージからコンテナを生成および実行状態する
「
docker run 」コマンドでイメージからコンテナを生成および実行状態にすることができる。
$ docker run -t -i phpmyadmin/phpmyadmin
docker runのオプション 説明
-t 疑似TTY※1を割り当てる。
-i 起動時に STDOUT を開きっぱなしにする。 STDOUTとは標準出力のこと。(コマンドプロントでは指定しなくても変化がみられず)
※1
ttyとは、どうやら、標準出力の接続先デバイスの事らしい。
ttyはLinuxコマンドでもあり、「$ tty」と入力すると「/dev/pty0」が返ってくる。
昔はコンソール入力装置なるものを指していたようだが、現在は端末のデバイス名として用いられているようである。
「docker run」コマンドを実行するとコンテナが起動し、実行直後はログイン状態になる。この状態でexitコマンドで抜けようとすると、コンテナも停止する。
コンテナを停止せずにログイン状態から抜ける、つまり通常のLinuxコマンド入力の状態に戻るには、デタッチ(
dettach )という操作を行う必要がある。
デタッチ操作は
Ctrlキーを押しながらPキー、Qキー を順番に押すだけである。この操作でコンテナを停止せずにログイン状態から抜けることができる。
再びログイン状態にするにはアタッチを行う。
アタッチは「docker attach コンテナID(またはNAME)」コマンドを実行する。
$ docker attach 8881e83a6e66
Windowsの場合、「winpty 」を付加する。
$ winpty docker attach 8881e83a6e66
稼働中のコンテナ一覧を確認する方法
「
docker ps 」コマンドで稼働中のコンテナを確認できる。
※停止中のコンテナは一覧に表示されない。
コンテナを停止する
「docker stop コンテナID」コマンドで稼働中のコンテナを停止することができる。
なお、コンテナを停止しても削除されているわけではない。あくまで停止中であり、再スタートすることができる。(後述)
$ docker stop 8881e83a6e66
停止中のコンテナを一覧表示する。
「docker ps -a」コマンドで停止中のコンテナを一覧表示させることができる。
$ docker ps -a
停止中のコンテナを動かす
「docker start コンテナID」コマンドで停止中のコンテナを再稼働させることができる。
$ docker start 8881e83a6e66
2017-11-22
コンテナの作成 | docker run
docker run -it --name test_name -p 8080:80 -v c:/Users/user_xxx/git:/var/www/html test_image:5.6
引数 説明
--name test_name
コンテナ名を指定する。コンテナ名は任意で名前をつけることができる。
省略可能だが名前を付けたほうがコンテナ操作するときに便利。
省略した場合はコンテナIDを指定してコンテナ操作をしなければならない。
「-p 8080:80」
Docker環境にアクセスするときに指定するポート番号である。
ブラウザに「http://localhost:8080」を入力することによりローカルのDocker環境にアクセスすることができる。
v c:/Users/k-uehara/git:/var/www/html
Windowsのディレクトリ(c:/Users/user_xxx/git)と Docker上のディレクトリ(/var/www/html)を関連づける。
Windowsのディレクトリは、Windows for Dockerでマウントしている「c:/Users」から下のディレクトリのみ指定可である。
test_image:5.6 イメージ名:バージョン。イメージIDを指定することもできる。
2017-12-4
XXX
ホーム
プログラミングの覚書
Dockerの覚書 | ワクガンス