Docker容器(五):Docker简单使用

/ Docker / 0 条评论 / 311人围观

OK,有了Docker的基本命令,那就完全可以使用Docker了,下面简单拉取一个精简版的CentOS作为Docker的初步使用。

拉取CenOS基础镜像

执行命令 docker pull centos

它默认去国外的仓库去拉取,但由于我们配置了阿里云的镜像仓库,所以从国内拉取,速度非常快。使用 docker images 来查看拉取下来的镜像。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              75835a67d134        4 weeks ago         200 MB

创建容器并运行

执行命令 docker run -it 75835a67d134

-it表示以交互方式运行,也就是执行完命令后直接进入容器内部,然后执行 ls -l 会发现,完完全全跟linux系统无异。使用命令 cat /etc/redhat-release 查看系统版本,如下:

[root@40e3d7ba1402 /]# ll
total 56
-rw-r--r--  1 root root 12030 Oct  6 19:15 anaconda-post.log
lrwxrwxrwx  1 root root     7 Oct  6 19:14 bin -> usr/bin
drwxr-xr-x  5 root root   360 Nov 12 10:58 dev
drwxr-xr-x  1 root root  4096 Nov 12 10:58 etc
drwxr-xr-x  2 root root  4096 Apr 11  2018 home
lrwxrwxrwx  1 root root     7 Oct  6 19:14 lib -> usr/lib
lrwxrwxrwx  1 root root     9 Oct  6 19:14 lib64 -> usr/lib64
drwxr-xr-x  2 root root  4096 Apr 11  2018 media
drwxr-xr-x  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x  2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x 87 root root     0 Nov 12 10:58 proc
dr-xr-x---  2 root root  4096 Oct  6 19:15 root
drwxr-xr-x  1 root root  4096 Nov 12 10:58 run
lrwxrwxrwx  1 root root     8 Oct  6 19:14 sbin -> usr/sbin
drwxr-xr-x  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x 13 root root     0 Nov 12 10:58 sys
drwxrwxrwt  7 root root  4096 Oct  6 19:15 tmp
drwxr-xr-x 13 root root  4096 Oct  6 19:14 usr
drwxr-xr-x 18 root root  4096 Oct  6 19:14 var
[root@40e3d7ba1402 /]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 

查看镜像大小

执行命令 docker images

一个CentOS系统大小竟然才200M,用过VMware的都知道,一般镜像大约4个G,为何这个虚拟镜像才这么点,其实是Docker对虚拟镜像的Linux系统进行了裁切,将跟我们软件运行无关的硬件系统全部裁剪掉了,比如声卡,显卡等等吧仅仅留下了一个运行的内核Kernel。

CentOS镜像的DockerFile

FROM scratch
ADD centos-7-docker.tar.xz /

LABEL org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20181006"

CMD ["/bin/bash"]

以上就是CentOS的DockerFile了,其中scratch就相当于java中的Object类,它就是所有镜像的父类,所有的镜像都是依据DockerFile来创建的,下一章会介绍一下DockerFile是什么,如何简单编写。