MacにDocker
ここの子ページ的な
コンテナからイメージ作成(docker commit)
centos7のイメージからコンテナ起動して、centos7で色々設定を行い、その後イメージの作成を行います。
centos7のイメージを取得
$ docker pull centos:7
$ docker pull images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 980e0e4c79ec 4 weeks ago 196.8 MB
centos7のコンテナ起動
centos7のイメージからコンテナ名mycentosでコンテナ起動。
$ docker run -it --name mycentos centos:7 /bin/bash
[root@b8f64d7790e8 /]#
ここからはcentosの設定なので、不要な場合読み飛ばしてください。
### コンテナ内でcentosの操作 ###
##########
# ■最新化
[root@b8f64d7790e8 /]# yum -y update
##########
# ■rootのパスワード設定
[root@b8f64d7790e8 /]# passwd
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
##########
# ■ユーザ追加
[root@b8f64d7790e8 /]# useradd <ユーザ名>
# 追加したユーザにパスワード設定
[root@b8f64d7790e8 /]# passwd <ユーザ名>
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# 追加されたことを確認
[root@b8f64d7790e8 /]# su - <ユーザ名>
[<ユーザ名>@b8f64d7790e8 ~]$ whoami
<ユーザ名>
##########
# ■sudo設定
[root@b8f64d7790e8 /]# yum -y install sudo
[root@b8f64d7790e8 /]# visudo
## 最終行に以下を追加
<ユーザ名> ALL=(ALL) ALL
# sudo設定確認
[root@b8f64d7790e8 /]# su - <ユーザ名>
[<ユーザ名>@b8f64d7790e8 ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[<ユーザ名>@b8f64d7790e8 ~]$ sudo cat /etc/shadow
[sudo] password for <ユーザ名>: # ユーザのパスワードを入力して実行できることを確認
##########
# ■vimのインストール
[root@b8f64d7790e8 ~]# yum -y install vim-enhanced
# vimのエイリアスを設定
[root@b8f64d7790e8 ~]# vi /etc/profile
## 最終行に以下を追加
alias vi='vim'
# 変更を適用
[root@b8f64d7790e8 ~]# source /etc/profile
# centos設定終了
[root@b8f64d7790e8 /]# exit
コンテナの状態確認
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b8f64d7790e8 centos:7 "/bin/bash" 58 minutes ago Exited (1) 8 seconds ago mycentos
停止している
コンテナからイメージ作成
初期設定したcentos7のコンテナ(コンテナ名:mycentos)からイメージを作成します。
$ docker commit -a "<作成者を任意で設定>" -m "<コミットメッセージを任意で設定>" mycentos <Docker Hubのユーザ名>/mycentos:1.1
作成したイメージの確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<Docker Hubのユーザ名>/mycentos 1.1 49f48b38810e 24 seconds ago 413 MB
centos 7 980e0e4c79ec 4 weeks ago 196.8 MB
作成したイメージからコンテナ起動
作成したイメージ/mycentosからコンテナ名mycentos2でコンテナ起動。
docker run -it --name mycentos2 <Docker Hubのユーザ名>/mycentos:1.1 /bin/bash
[root@305dfeb8a6c4 /]#
コンテナ名mycentosで追加したユーザが存在することを確認
[root@305dfeb8a6c4 /]# su - <ユーザ名>
[<ユーザ名>@305dfeb8a6c4 ~]$