Docker 基础指南与基本指令操作

版权声明:代码就是程序,程序就是艺术,艺术来源于生活,每一行代码都有它存在的意义! https://blog.csdn.net/Axela30W/article/details/82154755

Docker 是一个开源的应用容器引擎,可以打包应用到一个轻量级、可移植的容器中,然后发布到主流Linux系统上运行。比如把我们开发的Java Web项目打包到一个容器中,然后可以轻松移植到其他操作系统上运行。
Docker 和传统虚拟化方式的不同之处,Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。
Docker不是虚拟机!
优点

  1. Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多,容器之间不相互影响,隔离性好
  2. Docker 对系统资源的利用率很高
  3. 更快速的交付和部署,一次打包,到处部署
  4. 让项目迁移和拓展变得更简单

一、概念

Docker镜像:类似于虚拟机镜像,是创建Docker容器的基础。譬如一个Ubuntu镜像。我pull下来,就可以通过run命令创建并启动一个Ubuntu镜像的容器实例。
Docker容器:类似于一个轻量级的沙箱,利用容器来运行和隔离应用。按我的理解,镜像就像是容器的源码,容器就是镜像的一个实例。每次操作镜像创建一个容器,就相当于创建了一个镜像的实例。每个容器都有自己的 root 文件系统,每个容器都运行在自己的进程环境中同一个镜像可以启动多个容器实例!
Docker仓库:有点类似与Git仓库的味道,是存放镜像文件的场所。譬如说存放Ubuntu操作系统镜像的仓库称为Ubuntu仓库。可以从仓库pull拉取镜像也可以向仓库push自己做的镜像。
仓库注册服务器:存放仓库的地方。譬如Ubuntu仓库,CentOS仓库等等都存放在这里。

Docker是C/S模式的,服务端(接收终端命令)和客户端(输入命令操作)都可以在本地主机同时运行。也可运行在不同的机器上通过socket或RESTful API通信。


二、基础操作

*安装Docker就自行安装了,这里就不赘述了。下载地址:Docker Desktop

  • docker version 查看版本
  • docker pull ubuntu:latest 默认从Docker Hub官方镜像源下载镜像,要从其他源仓库下载要跟上仓库地址。这里以ubuntu镜像为例。ubuntu是镜像仓库的名称,latest是版本信息。譬如可以下载指定版本的(ubuntu:14.04).
  • docker images 查看本地已有的镜像,有来自于哪个仓库,标签,镜像的唯一ID,大小,创建时间等信息
  • docker inspect ubuntu:latest 查看镜像详细信息
  • docker create -it ubuntu:latest 基于某个镜像创建一个容器实例,容器现在处于停止状态,可以多次创建,每次创建都生成不同的容器,容器id唯一标识。参数i:让容器的标准输入保持打开。参数t:让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
  • docker ps 查看运行状态的容器
  • docker ps -a 查看所有的容器 包含停止状态与运行状态的
  • docker start [容器id] 启动一个容器
  • docker restart [容器id] 重启一个容器
  • docker stop [容器id] 停止一个容器
  • docker run ubuntu:latest 创建并启动一个容器,run命令涵盖create与start命令的操作。会现在本地找ubuntu:latest镜像,没有的话会去官方仓库pull下来,然后创建并启动一个基于此镜像的容器。
  • docker exec -it [容器id] /bin/bash 进入某个启动了的容器,并打开一个bash伪终端,当使用exit命令退出后,容器也会退出
  • docker logs -f [容器id] 实时查看容器日志
  • docker history ubuntu:latest 查看镜像历史
  • docker ps -qa 查看所有容器id
  • docker rm [容器id] 删除容器 -f 强行终止并删除一个运行中的容器
  • docker rmi ubuntu:latest 删除镜像,也可以通过镜像id删除
  • docker save -o ubuntu20180828.tar ubuntu:latest 导出本地的ubuntu:latest镜像为文件ubuntu20180828.tar
  • docker load –input ubuntu20180828.tar 导入镜像

Docker打包和分层的概念很重要。以ubuntu:latest为基础镜像,我在这个镜像里面做一系列操作,比如安装个curl,vim,或者安装个Nginx。然后再创建一个镜像,此新镜像就是在ubuntu:latest基础镜像的基础上又涵盖了我前面安装的那些东东。每对镜像做一次操作就会封装一层,这个概念在下篇文章中用Dockerfile文件创建自定义镜像的时候就更好理解。


这里写图片描述

猜你喜欢

转载自blog.csdn.net/Axela30W/article/details/82154755