Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
1.docker三大特性
- 镜像
Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。 - 容器
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 - 仓库
仓库可看着一个代码控制中心,用来保存镜像。
2.docker 安装
对于centos7以上版本,请参考官网安装教程https://docs.docker.com/install/linux/docker-ce/centos/
使用阿里云加速器,可以避免翻墙问题。
3.docker常用指令(一)
帮助命令
docker --help
镜像命令
docker images //所有本地仓库的镜像
查询镜像
docker search -s 30 tomcat //点赞不少于30的tomcat镜像
下载镜像
docker pull tomcat //下载最新tomcat镜像
删除镜像
docker rmi -f hello-world //强制删除镜像
docker rmi -f $(docker images -qa) //溜了溜了
运行镜像启动容器
docker run tomcat
运行容器
docker start centos
列出运行的容器
docker ps
退出容器
exit//退出并关闭
ctrl+P+Q//退出挂后台
停止容器
docker stop
docker kill
删除已停止容器
docker rm
docker rm -f
4.docker常用指令(二)
运行镜像启动容器
docker run -it centos //交互方式
docker run -d centos //后台运行,启动后自动消失
查看容器日志
docker logs 容器ID
获取容器/镜像的元数据。
docker inspect ID
进入后台容器
docker attach
docker exec //docker exec -it 243c32535da7 /bin/bash
创建容器卷
docker run -it -v /宿主机目录:/容器内目录 centos /bin/bash
创建镜像
docker build -f file -t imagename . //根据文件创建名为xxx的镜像
5.DockerFile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
使用流程:
dockerfile --> build 镜像 --> run 容器
指令