在进一步学习Docker之前,我们需要对Docker的基础概念有个较清晰的了解。比如,Docker有哪些优点?Docker镜像和Docker容器的区别?以及Docker常用的基础命令等。
1.Docker优点
Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台,使用Linux容器部署应用程序称为容器化,容器化越来越流行的主要原因是:
- 灵活(flexible):即使是非常复杂的应用程序也可以被容器化;
- 轻量(lightweight):多个容器可共享同一个内核;
- 可互换(interchangeable):支持动态部署更新或升级;
- 可移植(portable):支持在本地构建、部署到云上以及在任何地方运行;
- 可伸缩(scalable):支持增加或自动分发容器副本;
- 可堆叠(stackable):支持动态地堆叠服务。
2.Image(镜像)和Container(容器)
镜像是一个可执行的包,它包含运行应用程序所需的所有东西——代码、运行库、环境变量以及配置文件等。
容器则是镜像运行的一个实例,使用docker ps命令可以查看当前正在运行的容器列表。
3.容器和虚拟机
容器在Linux本机上运行,与其他容器共享主机的内核,它不需要消耗过多的内存,因此容器是轻量级的。
相反地,虚拟机运行一个操作系统,通过管理程序(hypervisor)对主机资源进行虚拟访问。一般来说,虚拟机提供的资源往往要比应用程序本身运行所需要的资源多得多。如下图所示:
图3-1
4.基础命令
首先,您需要安装Docker CE或者Docker EE,安装步骤详见前一篇文章。
(1)查看Docker版本信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#docker --version命令,查看您当前安装的Docker版本: [leo@ubuntu learn-docker]$ sudo docker --version Docker version 18.06.1-ce, build e68fc7a #docker info或docker version命令,可以查看关于Docker更多的细节信息: [leo@ubuntu learn-docker]$ sudo docker version Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:24:56 2018 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 18.06.1-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:23:21 2018 OS/Arch: linux/amd64 Experimental: false |
(2)测试Docker
1)通过运行简单的Docker镜像——hello-world来测试Docker是否正常工作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[leo@ubuntu docker]$ sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/engine/userguide/ |
注:如果没有安装hello-world镜像,那么第一次运行此命令会自动安装该镜像。
2)罗列当前系统下载的镜像:
1 2 3 4 5 |
[leo@ubuntu docker]$ sudo docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE learn/ping latest 53ece1ba7093 27 hours ago 128MB hello-world latest 2cb0d9787c4d 8 weeks ago 1.85kB learn/tutorial latest a7876479f1aa 5 years ago 128MB |
3)查看容器:
1 2 3 4 |
#查看正在运行的容器 [leo@ubuntu docker]$ sudo docker container ls #查看所有容器(包括已经不在运行的) [leo@ubuntu docker]$ sudo docker container ls --all |
参考:
https://docs.docker.com/get-started/