注: 以下使用的镜像为docker 官方下载的 centos最新版。
1. 常用命令
docker search centos #docker hub中搜索符合条件的镜像
docker pull centos #从docker hub上拉取centos最新镜像, 也可用 docker load -i XXX.tar
docker images #列出本地所有docker镜像
docker ps #列出正在运行的容器
docker ps -a #列出所有容器,包含未在运行的
docker stop containerID #停止运行容器, 相应的: start、restart、kill、rm、rm -f
docker run -ti centos /bin/bash #运行centos镜像
-d 后台运行
-p 端口设置
2. 制作docker镜像
本例中在原生centos镜像中安装httpd服务,容器中的80端口映射到宿主机的9000端口。
方法一: 使用docker commit
docker commit containerID 新镜像名称
方法二: 使用Dockerfile
Dockerfile类似于C中的Makefile文件,Dockerfile内部书写用户的操作。
mkdir docker-build
cd docker-bild
touch Dockerfile
Dockerfile中写入以下内容:
FROM centos
MAINTAINER xiaoming [email protected]
RUN yum install httpd -y
ADD start.sh /usr/local/bin/start.sh
ADD test.html /var/www/html/test.html
解释: FROM : 镜像名称
MAINTAINER : 作者 <作者邮箱>
RUN : 要在容器上执行的命令
ADD : 将docker-build中指定文件加到容器中指定位置
echo "/usr/sbin/httpd -DFOREGROUND" > start.sh #用于容器中启动httpd服务
echo "hello docker" > test.html #测试网页
docker build -t centos:httpd . #创建新的镜像。
docker run -ti centos:httpd /bin/bash #运行刚刚新建的镜像
docker ps #宿主机中查看docker端口是否映射成功
curl http:127.0.0.1:9000/test.html #宿主机中验容器中httpd是否可以正常访问
3. 本地发布新制作的centos:httpd镜像
docker save -o centos-httpd.tar centos:httpd
也可以发布到docker hub上。