基于已有的镜像容器进行创建
[root@localhost opt]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19ed00c77db9 centos:7 "/bin/bash" About a minute ago Up About a minute quizzical_northcutt
fd562f234cca nginx:latest "/docker-entrypoint.…" 41 minutes ago Up 5 minutes 80/tcp cranky_agnesi
[root@localhost opt]# docker commit -m "new" -a "docker" 19ed00c77db9 docker:test
sha256:13d5c0ea9bc703a1923f0d2968d4602f85a40eff98a3f5ce7436046c8bee46f9
[root@localhost opt]# docker images | grep docker
docker test 13d5c0ea9bc7 12 seconds ago 203MB
基于本地模板创建
准备模板包debian-7.0-x86-minimal.tar.gz
[root@localhost opt]# cat debian-7.0-x86-minimal.tar.gz | docker import - docker:new
sha256:f924115851b55619925de9bdcb88a65640a13c7a056b7eb0ee2d245c428de837
[root@localhost opt]# docker images | grep new
docker new f924115851b5 10 seconds ago 215MB
基于Dockerfile创建
[root@localhost opt]# mkdir apache
[root@localhost opt]# cd apache
[root@localhost apache]# vim Dockerfile
FROM centos:7
MAINTAINER alis
RUN yum -y update
RUN yum -y install httpd
EXPOSE 80
ADD index.html /var/www/html/index.html
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
[root@localhost apache]# vim run.sh
#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND
[root@localhost apache]# echo "this is web test" > index.html
上面的文件准备好后,生成镜像
[root@localhost apache]# docker build -t httpd:centos .
新镜像运行容器
先看一下
[root@localhost apache]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19ed00c77db9 centos:7 "/bin/bash" 17 minutes ago Up 17 minutes quizzical_northcutt
fd562f234cca nginx:latest "/docker-entrypoint.…" 57 minutes ago Up 21 minutes 80/tcp cranky_agnesi
[root@localhost apache]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd centos 8ec76c3d831d About a minute ago 419MB
docker new f924115851b5 10 minutes ago 215MB
docker test 13d5c0ea9bc7 12 minutes ago 203MB
nginx web 21d257122e0c 44 minutes ago 131MB
nginx latest c39a868aad02 3 days ago 133MB
centos 7 7e6257c9f8d8 3 months ago 203MB
paigeeworld/centos7 latest 4cbe7aa905e7 6 years ago 382MB
运行
[root@localhost apache]# docker run -d -p 1216:80 httpd:centos
be0fdd9831fe2d8297df535d163eb94f1a7d3e6a5e11e7758cc5b57d7814abc2
看一下,容器运行了
[root@localhost apache]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be0fdd9831fe httpd:centos "/run.sh" 4 seconds ago Up 3 seconds 0.0.0.0:1216->80/tcp practical_poincare
19ed00c77db9 centos:7 "/bin/bash" 18 minutes ago Up 18 minutes quizzical_northcutt
fd562f234cca nginx:latest "/docker-entrypoint.…" 58 minutes ago Up 22 minutes 80/tcp cranky_agnesi