Docker で、イメージの名前を変更する方法
tag コマンドを使う。
docker tag <image_id> <repository_name>:<tag>
ここで、:tag の部分は省略して <repository_name> だけにしてもよい。コロン(:)の後の tag は、日付やバージョンをつけて同じリポジトリの中で異なるバージョンのイメージを置くという感じ。
docker tag <image_id> <repository_name>
tag コマンドを使う。
docker tag <image_id> <repository_name>:<tag>
ここで、:tag の部分は省略して <repository_name> だけにしてもよい。コロン(:)の後の tag は、日付やバージョンをつけて同じリポジトリの中で異なるバージョンのイメージを置くという感じ。
docker tag <image_id> <repository_name>
Ubuntu 14.04 LTS では、サーバ起動時はUpstart というもので Apache などのサービスを起動していたのだけれど、16.04 LTS からは Systemd というのに変わってしまった。それによって、これまで 14.04 LTS ではうまくいっていたサーバ起動時の Docker コンテナ起動ができなくなってしまった・・・
・・・と、お嘆きの皆様、systemd なんかをいろいろいじってみたのだが、以下のようなシンプルな手順で今は落ち着きました。
docker run --name <Docker 名> -h <ホスト名> -it <コンテナ ID> /bin/bash
でコンテナを起動しておく。そのあと、/etc/rc.local (の、最後の方)に
vi /etc/rc.local
以下のように docker start を書いておくだけ。
ボリュームのリストを表示
sudo docker volume ls -qf dangling=true
要らなくなったボリュームを削除
sudo docker volume rm $(sudo docker volume ls -qf dangling=true)
Docker コンテナに Apache2 をインストールして Docker コンテナを起動(docker run または docker start)しても、Apache2 は起動してくれない。ググるとどうも Docker は /sbin/init などが書き換えられているらしく、ふだん我々が普通に使用している Apache2 などのサーバサービス(多くは service コマンドで起動・停止などコントロールできるもの)を自動起動できないようだ。いろいろな方法があるようだが、結局は以下の方法が一番簡単なように思う。
docker コンテナにログイン後、docker コンテナ内の /root/.bashrc ファイルの最後に以下の 1行を加える(Apache2 の場合)
vi ~/.bashrc
service apache2 start
Docker のホスト OS (Ubuntu 14.04 LTS で確認済み)で、以下のファイルを作成する。