Docker作为一种容器技术,可以用来快速部署服务。属于进程级别,对进程进行隔离。
具有启动快,占用资源少,体积小等优点。
基本概念
1. 镜像
程序及其依赖打包在image文件里面,通过这个文件,生成容器。 image可以看做容器的模板,同一个image文件可以生成多个同时运行的容器实例。
2. 容器
容器(Container) 是镜像的一个实例。关闭容器不会删除容器文件,只是容器停止运行而已。
3. 仓库
镜像仓库, 把镜像托管到 docker hub ,就像代码托管到github一个道理。
Docker Registry是集中存储、分发镜像的服务。 一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像可以通过 <仓库名>:<标签> 的格式来指定具体版本的软件镜像。如果不给出标签,默认为latest。
Linux下安装和启动
1. yum仓库安装docker
yum install -y docker
2. 启用docker服务
systemctl enable docker
systemctl start docker
重启,或停止docker服务:
systemctl restart docker
systemctl stop docker
3. 查看docker服务的运行状态
systemctl status docker
其他可以查看docker状态的命令:
sudo docker info
sudo docker version
4. 创建docker用户组
默认情况下,docker 命令使用 Unix socket 与 Docker 引擎通讯。而只有 root 和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
sudo groupadd docker
#将当前用户加入docker组:
sudo usermod -aG docker $USER
#退出当前终端并重新登录
获取镜像
先搜索镜像。如果想获得具体的标签号,建议登录镜像仓库官网查找。
sudo docker search <镜像名>
比如想要安装数据库,直接使用:
docker search mysql
拉取镜像:
sudo docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
例: docker pull mysql
具体选项信息可以通过help查看: docker pull --help
常用命令
可以使用help查看Docker相关命令的具体使用说明。
$docker help
镜像操作
a. 查看你已经下载好的镜像。可以使用help查看具体的OPTIONS。
docker images [OPTIONS] [REPOSITORY[:TAG]]
例: $ docker images (非root用户前面要加sudo)
结果如下:
每列的具体解释如下:
REPOSITORY:仓库名TAG:标签, 一个镜像可以对应多个标签,可以理解成镜像版本信息 IMAGE ID:镜像 ID,镜像唯一标识 CREATED:创建时间 SIZE:镜像下载到本地所占用的空间 |
b. 删除镜像:
docker rmi [OPTIONS] IMAGE [IMAGE...]
容器操作
c. 启动容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
使用help命令查看具体使用:$sudo docker run --help
关于运行常用的各参数,会再写一篇文章专门做讲解。
d. 停止容器:
docker stop XX
启动,重启,杀死一个容器:
docker start XX
docker restart XX
docker kill XX
e. 查看容器日志:
docker logs XX
docker logs -f XX 查看实时日志
f. 查看容器状态:
docker stats XX
g.查看启动的容器列表
docker ps
查看所有的容器,包括已经停止的:
docker ps -a
h. 删除容器:
如果容器正在运行,需要先使用stop命令停止容器。
docker rm XX