Docker的基本操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/alw_123/article/details/77997790

0.安装docker

在ubuntu下安装docker可以参考以下命令:

sudo apt-get update
sudo apt-get install docker

验证方法:

docker version

这里写图片描述

1.下载镜像

docker的镜像和容器(可以看成是一个轻量级的虚拟机)的关系好比如类和对象的关系,镜像是一个模板,容器是镜像的一个实例。再具体点,举个栗子。我们想在windows的电脑上装个linux的虚拟机,那么你肯定是先要下载liunx的.iso文件(镜像),然后再在VMWare上载入这个镜像来安装liunx系统(容器)。所以要跑一个容器之前需要下载镜像,docker下载镜像的命令非常简单,和git拉代码差不多。下面是下载镜像的栗子:

docker pull redis       //从dockerhub下载一个叫redis的镜像,这个镜像会在容器跑起来的时候启动redis服务。

这里写图片描述

2.hello world

有了镜像之后,按照惯例,当然是试一把docker的hello wolrd(跑一个容器并输出hello world)。docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell环境等等。但这个沙盒默认是不会运行任何程序的。你需要在沙盒中运行一个进程来启动这个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全的停止。下面我将跑一个ubuntu的容器,并在容器跑起来的时候输出hello world。

docker run ubuntu:latest echo hello world  //run表示运行容器 ubuntu:latest表示镜像名,echo hello world表示容器跑起来之后执行的命令

这里写图片描述

在上面的运行结果中可以看到docker images和docker ps这两条命令。docker images命令可以查看当前本地拥有的镜像,docker ps可以查看当前运行中的容器的一些状态。细心的你应该会发现docker ps的结果中并没有刚刚运行起来的容器的状态。这是因为上面的容器echo完了之后就没有进程在跑了,所以容器也就down掉了。所以docker ps后看不到任何容器的状态。

3.在容器中安装新软件并保存为镜像

有时候我们可能会需要跑一个基于一个基础镜像的容器,然后安装一些新程序,然后将这个装了新软件的容器保存为一个新的镜像供以后使用。比如我起了个ubuntu镜像的容器,然后想装个git,然后还想把这个容器保存为一个新的镜像叫my_ubuntu,可以撸如下命令:

docker run ubuntu:latest apt-get -y update && apt-get install -y git

这里写图片描述

命令执行完之后虽然容器会终止,但是对容器做的修改不会丢失,也就是说当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。docker中保存状态的过程称之为committing,它保存的新旧状态之间的区别,从而产生一个新的版本。现在我想把刚刚修改过的容器保存为一个叫my_ubuntu的镜像,可以如下操作:

docker ps -l        //查看修改过的容器的id
docker commit xxx MyUbuntu      //xxx为容器的id

用docker images命令可以查看本地拥有的镜像
这里写图片描述
从图中可以看到my_ubuntu镜像已经构建成功了,相比于其基础镜像ubuntu大了30M左右,这是因为镜像的构建就像搭积木,你对镜像做的每一个修改,都会在基础镜像上进行累积,修改的越多,新的镜像的size也就越大。

猜你喜欢

转载自blog.csdn.net/alw_123/article/details/77997790
今日推荐