docker概述

一、什么是docker

  • 1.docker是一个容器,是为了实现轻量级系统虚拟化而推出的一款解决方案产品
  • 2.docker属于Linux容器的一种封装,提供简单易用的容器使用接口.

二、docker的主要用途

  • 1.提供一次性的环境. 比如,构建统一的部署环境
  • 2.提供弹性的云服务. 因为docker容器可以随时开关,很适合动态扩容和缩容
  • 3.组建微服务架构.

三、docker的安装

1
2
#安装完成之后查看
docker version

docker需要用户具有sudo权限,可以把用户加入docker用户组官方文档

1
sudo usermod -aG docker $USER

docker是服务器–客户端架构.命令行运行docker命令的时候,需要本机有docker服务.如果这项服务没有启动,可以用下面命令启动

1
2
3
sudo service docker start

sudo systemctl start docker

四、image文件

  1. docker把应用程序及其依赖,打包在image文件里面.只有通过这个文件,才能生成docker容器.image文件可以看作是容器的模板.docker根据image文件才能生成容器的实例.同一个image文件,可以生成多个同时运行的容器实例.

  2. image 是二进制文件.实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成. 举例 来说,你可以基于ubuntuimage基础上,安装node环境.形成自己的image

  3. image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用.通常使用 docker save [option] [imageName] 可以将镜像保存为.tar的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 例如本机所有的image文件
docker images
# 或
docker image ls

# 删除image文件
docker rmi [imageId]
docker rmi [imageName]
docker image rm [imageName]

# 将image保存为文件
docker save -o filename.tar [imageName]

# filename.tar文件可以拷贝到其他机器上,重新load
docker load -i filename.tar

五、实例: ubuntu

1.拉取ubuntu16.04的镜像

1
2
3
4
# 拉取node镜像
docker pull ubuntu:16.04
# or
docker image pull ubuntu:16.04

2.基于ubuntu镜像启动一个容器

1
2
3
4
5
# 以交互模式运行容器
docker run -it --name ubuntu ubuntu:16.04

# 后台运行容器
docker run -d --name ubuntu ubuntu:16.04

3.查看正在运行的容器

1
2
3
4
5
6
7
8
9
# 查看所有容器,包括未运行的
docker ps -a
# or
docker container ls -a

# 查看所有正在运行的容器
docker ps
# or
docker container ls

4.进入正在运行的容器内

1
docker exec -it ubuntu

5.启动/停止/重启/删除容器

1
2
3
4
5
6
7
8
9
10
11
# 启动容器 docker start [containerName]
docker start ubuntu

# 停止容器 docker stop [containerName]
docker stop ubuntu

# 重启容器 docker stop [containerName]
docker restart ubuntu

# 删除容器 docker rm [containerName] 注:删除前要停止容器
docker rm ubuntu

6.删除镜像

1
2
# 删除image之前,要确保这个容器没有被使用
docker rmi ubuntu:16.04