Docker(一):简介和常用命令

一、Docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:

  • DockerClient客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • DockerContainer容器

二、Docker能做什么

  • 搭建测试环境
  • 搭建各类基础服务
  • 搭建测试执行环境

三、Docker虚拟机的区别

  • VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用
  • Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应用。

3.1、优缺点对比

  • VM虚拟化一个完整的内核;启动慢;内存占用大;
  • Docker容器共享宿主机内核;启动更快;内存占用小;
  • Docker缺点:一个容器将内核搞坏,整个宿主机都会挂;挑内核的应用不应使用docker容器【兼容性测试(2B的企业应用,对操作系统内核有要求)、编译如C++】
启动时间:Docker秒级启动,虚拟机分钟级启动。
轻量级:docker镜像大小通常以M为单位,虚拟机以G为单位。容器资源占用小,要比虚拟机部署更快速。
性能:docker共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,性能基本接近物理机; 虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,虚拟化开销大,因而降低性能,没有容器性能好。
安全性:由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,docker具有一定权限访问宿主机内核,存在一定安全隐患。
使用要求:VM基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持; docker共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。
总结:虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。

四、Docker的关键技术

  • Namespace
  • 联合文件系统
  • Cgroups

五、Docker的安装

六、Docker的基本使用命令

6.1、镜像管理命令

  • docker pull {image_name} (拉取镜像)
  • docker push {image_name} (推送镜像)
  • docker images (查看当前机器的所有镜像)
  • docker rmi {image_name} (删除当前机器的一个镜像)
  • docker tag {source_images_name:tag your_image_name:tag}为一个镜像打tag
  • docker save busybox > busybox.tar
  • docker load < busybox.tar.gz

6.2、容器管理命令

  • docker run --name={your_name} --d {image_name} (运行容器)
  • docker ps -s -a
  • docker stop {container_name} (停止容器)
  • docker kill (container_name)
  • docker rm -f {container_name} (容器如果运行中,-f强制删除容器;容器不在运行,可不加-f)

6.3、查信息相关命令

  • docker logs -f {容器名称} (查看容器日志)
  • docker info (查看docker服务的信息)
  • docker inspect {容器名称} (查看容器的元数据)

6.4、与容器交互的命令

  • docker exec -it {容器名称} bash进入容器,exec的意思是在容器中运行一个命令。如果是bash
    并且指定了-it就会打开容器的shell交互
  • docker cp {container:name}:{container_path} {host_path} 把宿主机上的一个文件copy到容器中

6.5、容器运行命令的一些参数 (docker run)

  • --name指定容器名称
  • -d后台运行
  • -port指定端口映射规则
  • --network指定容器运行的网路模式
  • -v指定需要挂载的数据卷
  • -env 指定需要传递给容器的环境变量
posted @ 2020-05-13 10:54  起名字好难~  阅读(235)  评论(0编辑  收藏  举报