Docker梳理
1、Docker是什么
docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器。
2、和虚拟机对比
3、Docker的三个概念
-
镜像 (image)
-
容器 (container)
-
仓库 (repository)
镜像可以认为是一些软件和配置环境的整体打包。
容器可以认为是一个精简的 Linux 系统,它是通过镜像运行起来的实例,镜像运行起来就是容器。从这个角度来讲,镜像就类似于 Java 中的 Class 类型,由它可以创建多个实例。
镜像是存在硬盘上的东西,镜像运行起来,就形成一个容器,容器才是真正跑起来的程序。只不过在 Docker 中,我们可以进入容器,做一些操作,然后再把容器中的改动提交形成一个新的镜像。
仓库类似于 Github,我们写好的代码会提交到 Github 上面进行保存和管理,方便在其他地方也能下载代码。镜像仓库也是类似的,制作好的镜像,就把它放到镜像仓库,方便其他人直接用镜像部署。
4、Docker应用教程
安装:Install Docker Engine | Docker Documentation
记得配置阿里云镜像加速器,能大大缩短镜像下载时间
常用命令
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker --help # 帮助命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像
docker rmi #删除镜像
docker images 查看所有本地的主机上的镜像
REPOSITORY # 镜像的仓库源
TAG # 镜像的标签
IMAGE ID # 镜像的id
CREATED # 镜像的创建时间
SIZE # 镜像的大小
docker run 镜像名
docker ps # 列举当前正在运行的容器
docker ps -a # 列举所有运行过的容器
exit # 容器停止并退出
ctrl + P + Q # 容器不停止退出
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -rf
docker rm -f 容器id 或 $(docker ps -aq) # 删除指定的容器或全部删除(包括历史信息)
docker ps -a -q|xargs docker rm # 删除所有的容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
docker run -d 镜像名 后台启动
docker logs -t --tail n 容器id # 查看 n 行日志
docker top 容器id 查看容器进程信息
docker exec -it 容器id bashshell/docker attach 容器id 进入当前正在运行的容器
docker exec # 进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach # 进入容器正在执行的终端
docker cp 容器id:容器内路径 宿主机目的路径 拷贝
5、Dockfile