1ケース1:カスタムミラー作る
1.1問題を
この場合は、カスタムイメージを作成する必要があります。
基于centos镜像使用commit创建新的镜像文件
基于centos镜像使用Dockerfile文件创建一个新的镜像文件
ステップ1.2
この場合は、以下の手順で達成する必要があります。
ステップ1:ミラー始まるコンテナを使用して
1)変更原料容器YUM基礎
[root@docker1 docker_images]# docker run -it centos
[root@8d07ecd7e345 /]# rm -rf /etc/yum.repos.d/*
[root@8d07ecd7e345 /]# vi /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=ftp://192.168.1.254/system
enabled=1
gpgcheck=0
[root@8d07ecd7e345 /]# yum clean all
[root@8d07ecd7e345 /]# yum repolist
2)ソフトウェアのインストールとテスト
[root@8d07ecd7e345 /]# yum -y install net-tools iproute psmisc vim-enhanced
ビューifconfigコマンド3)
[root@8d07ecd7e345 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.3 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:3 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:03 txqueuelen 0 (Ethernet)
RX packets 2488 bytes 28317945 (27.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1858 bytes 130264 (127.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@8d07ecd7e345 /]# exit
exit
ステップ2:さらに画像として、
1)新しいミラーを作成します。
[root@docker1 docker_images]# docker start 8d07ecd7e345
//可以简写为8d,要保证唯一性
8d07ecd7e345
[root@docker1 docker_images]# docker commit 8d07ecd7e345 myos:v1
sha256:ac3f9c2e8c7e13db183636821783f997890029d687b694f5ce590a473ad82c5f
2)図に示した新たな画像、-1チェック:
図-1
3)新しいミラーを確認してください
[root@docker1 docker_images]# docker run -it myos:v1
[root@497c7b4664bf /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.6 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:6 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:06 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7 bytes 578 (578.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ステップ3:使用Dockerfileファイルの新しいイメージファイルを作成します
Dockerfile構文:
- FROM:ベース画像
- MAINTAINER:ミラー作成者情報(詳細)
- EXPOSE:開いているポート
- ENV:環境変数を設定します
- ADD:ミラーにファイルをコピーします
- RUN:ミラーリング時に実行するコマンド、複数存在することができ
- WORKDIR:デフォルトの作業ディレクトリコンテナを定義します
- CMD:コマンドは、コンテナの起動時に実行、あなただけのCMDを持つことができます
1)のApacheのイメージファイルを作成します。
[root@docker1 ~]# mkdir oo
[root@docker1 ~]# cd oo
[root@docker1 oo]# touch Dockerfile //Dockerfile文件第一个字母要大写
[root@docker1 oo]# cp /etc/yum.repos.d/local.repo ./
[root@docker1 oo]# vi Dockerfile
FROM myos:v1
RUN yum -y install httpd
ENV EnvironmentFile=/etc/sysconfig/httpd
WORKDIR /var/www/html/ //定义容器默认工作目录
RUN echo "test" > /var/www/html/index.html
EXPOSE 80 //设置开放端口号
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
[root@docker1 oo]# docker build -t myos:http .
[root@docker1 oo]# docker run -d myos:http
d9a5402709b26b42cd304c77be442559a5329dc784ec4f6c90e4abac1c88e206
[root@docker1 oo]# docker inspect d9
[root@docker1 oo]# curl 172.17.0.7
test