镜像是Docker的灵魂
Docker的镜像是Docker容器运行的基础。学习Docker很重要的一点是镜像的使用。 理解镜像和容器镜像(image)和容器(container)是什么关系?
镜像常用命令查看镜像
docker images
将镜像保存为tar包 docker save centos6-mytest > centos6-mytest.tar 将导出的tar包加载为镜像 docker load < centos6-mytest.tar 制作基础镜像下载镜像制作工具 febootstrap yum -y install febootstrap 使用febootstrap制作镜像(CentOS6的镜像),完成后镜像目录是centos6-image。大概是335MB #febootstrap 基本用法是febootstrap [--options] REPO TARGET [MIRROR] ,后面可根据实际情况安装相应的包 -i 包名 febootstrap -i bash \ -i wget -i yum -i iputils -i iproute -i man -i vim-minimal \ -i openssh-server -i openssh-clients -i cronie-anacron -i crontabs -i rsyslog \ centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/ 将镜像导入到docker cd centos6-image && tar -c . | docker import - centos6-base 验证镜像可用 docker images #可以看到刚才制作好的centos6-base docker run -t -i centos6-base /bin/bash #可创建容器,进入bash命令行 制作应用镜像
基础镜像只包含了基础的系统,但是它没有包含实际的应用程序,不能产生实际的作用。 使用Docker File的方式制作新镜像编写Docker文件。vim Dockerfile #Dockerfile FROM centos6-base MAINTAINER Yonghua RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh EXPOSE 22 RUN echo 'root:123456' | chpasswd ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 CMD /usr/sbin/sshd -D #End 使用docker build产生新镜像 docker build -t centos6-ssh . #最后的.表示Dockerfile文件所在的路径 好了,通过docker images 命令可以看到新制作好的镜像centos6-ssh docker images #可以看到镜像了 将Container直接commit成镜像DockerFile 使用定义的方式来创建镜像,而有时候我们期望通过将Container转化为镜像的方式来获得镜像。 首先创建一个container,进入bash 进行我们的定制 docker run -t -i centos6-base /bin/bash 然后通过commit命令将container变成镜像 #docker commit CONTAINER_ID IMAGE_NAME docker commit 83a9fb9eeefd centos6-mytest 转载请保留固定链接: https://linuxeye.com/Linux/2073.html |