1.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:使用鏡像啓動容器
1)在該容器基礎上修改yum源
[root@docker1 docker_images]# docker run -it docker.io/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
3)ifconfig查看
[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
步驟二:另存爲另外一個鏡像
1)創建新建鏡像
[root@docker1 docker_images]# docker start 8d07ecd7e345
//可以簡寫爲8d,要保證唯一性
8d07ecd7e345
[root@docker1 docker_images]# docker commit 8d07ecd7e345 docker.io/myos:latest
sha256:ac3f9c2e8c7e13db183636821783f997890029d687b694f5ce590a473ad82c5f
2)查看新建的鏡像
[root@docker1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/myos latest 87feda116c17 6 weeks ago 321.6 MB
docker.io/busybox latest d8233ab899d4 7 weeks ago 1.199 MB
docker.io/nginx latest f09fe80eb0e7 9 weeks ago 109.2 MB
docker.io/redis latest 82629e941a38 11 weeks ago 94.98 MB
docker.io/ubuntu latest 20bb25d32758 11 weeks ago 87.47 MB
docker.io/registry latest 116995fd6624 11 weeks ago 25.76 MB
docker.io/centos latest 1e1148e4cc2c 4 months ago 201.8 MB
3)驗證新建鏡像
[root@docker1 docker_images]# docker run -it docker.io/myos:latest
[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
步驟三:使用Dockerfile文件創建一個新的鏡像文件
Dockerfile語法格式:
– FROM:基礎鏡像
– MAINTAINER:鏡像創建者信息(說明)
– EXPOSE:開放的端口
– ENV:設置環境變量
– ADD:複製文件到鏡像
– RUN:製作鏡像時執行的命令,可以有多個
– WORKDIR:定義容器默認工作目錄
– CMD:容器啓動時執行的命令,僅可以有一條CMD
1)創建一個Apache的鏡像文件
[root@docker1 ~]# mkdir bulid
[root@docker1 ~]# cd bulid
[root@docker1 bulid]# touch Dockerfile //Dockerfile文件第一個字母要大寫
[root@docker1 bulid]# cp /etc/yum.repos.d/local.repo ./
[root@docker1 bulid]# vi Dockerfile
FROM docker.io/myos:latest
RUN yum -y install httpd
ENV EnvironmentFile=/etc/sysconfig/httpd
WORKDIR /var/www/html/ //定義容器默認工作目錄
ADD index.html index.html
EXPOSE 80 //設置開放端口號
EXPOST 443
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
[root@docker1 bulid]# docker build -t docker.io/myos:http .
[root@docker1 bulid]# docker run -d docker.io/myos:http
d9a5402709b26b42cd304c77be442559a5329dc784ec4f6c90e4abac1c88e206
[root@docker1 bulid]# docker inspect d9
[root@docker1 bulid]# curl 172.17.0.7
test