基本命令:
docker pull
docker build
docker run
docker images
docker ps -a
docker rm # 删除容器
docker rmi # 删除镜像
docker cp # 是拷贝本地到镜像
docker commit -m<简介> -a<用户名>
Dockerfile 语法:
FROM # 基础镜像
MAINTAINER # 作者
RUN
COPY
ADD # 添加文件
CMD
EXPOSE # 暴露端口号
WORKDIR # 指定路径
ENV #设置环境变量
ENTRYPOINT # 设置容器入口
USER # 指定容器用户
VOLUME #指定容器挂着的卷
关于 Dockerfile 详细的情况,参见:
镜像分层:
dockerfile
的每一行都会对应一个 id
,都是对应了一层的。基本层是只读的,容器层是可读可写的。优点是多个容器可以共享基本的层,从而减小存储上的压力。
关于docker commit 的使用:
我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像
docker
自己提供的有 commit
功能
我们以 centos
为例,现在我们要在一个裸的 centos
上面安装 vim
编辑器,并且把这个功能保存下来,封装成一个能执行 vim
命令的 centos
镜像
拉去最新 centos
镜像:docker pull centos
进入镜像内部: docker run -it centos /bin/bash
备注:/bin/bash
不要忘了
[root@202 ~]# docker run -it centos /bin/bash
[root@afcaf46e8305 /]#
afcaf46e8305
是产生的容器 ID
,前面运行的时候不要 -d
后台运行了,不然会进不去容器内部的
[root@afcaf46e8305 /]# yum update
[root@afcaf46e8305 /]# yum install -y vim
安装完了后:exit
退出容器
然后把容器打包成镜像:
root@202 ~]# docker commit afcaf46e8305 centos-vim
完成后 docker images
查看镜像就会发现 centos-vim
这个镜像了
我们再用刚刚的方法进去 centos-vim
这个镜像,
[root@7f2d42f3e0a3 /]# vim --version
就可以看到 vim
的信息了
网友评论