Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器使用沙箱机制,相互之间不会有任何接口。
1. 虚拟机与Docker
2. Docker 优势
-
主机资源利用率高
-
启动时间快
-
运行环境一致性
-
部署简单
3. Docker架构
Docker 使用 C/S 架构,用户通过 Docker 客户端或 RESTful API 与 Docker 服务器或守护进程进行通信。
4. 基本概念
- 镜像 Image
镜像是基于联合文件系统的一种层式的结构,由一系列指令一步步构建出来。
- 容器 Container
容器是基于镜像启动的,每个容器都包含一个镜像,容器中可以运行一个或多个应用进程。
- 仓库 Registry
Registry 用来保存用户构建的镜像。Registry 分为公共和私有两种。Docker 公司运营的公共 Registry 叫做 Docker Hub,拥有大量的高质量的官方镜像。用户可以在 Docker Hub 分享并保存自己的镜像。
5. Docker镜像
(1)列出本地镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 f753707788c5 4 weeks ago 127 MB
(2)拉取镜像
$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
bf5d46315322: Pull complete
9f13e0ac480c: Pull complete
Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe
Status: Downloaded newer image for ubuntu:18.04
(3)查找镜像
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 465 [OK]
blalor/centos Bare-bones base CentOS 6.5 image 6 [OK]
(4)构建镜像
- Dockerfile文件:包含了一条条的指令,每一条指令构建一层镜像。
- docker build 命令使用 Dockerfile 文件构建镜像。
$ docker build -t jamtor/web .
(5)推送镜像
$ docker push jamtor/web
(6)删除本地镜像
$ docker rmi jamtor/web
6. Docker容器
(1)启动运行一个容器
$ docker run --name tomcat -d -i -t -p 8000:80 tomcat:lastest /bin/bash
-d:在后台运行容器,并显示容器ID。
-i:保持 stdin 打开,即使没有连接。
-t:分配一个伪终端。
--name:为容器指定名称。
-p hostPort:containerPort:将容器的端口映射到宿主机。
(2)docker start|stop|restart 启动|停止|重启容器。
(3)docker rm 删除容器。
(4)docker exec 在运行中的容器中执行一条命令。
(5)docker ps 查看运行的容器。
(6)docker logs 查看容器的日志。