Docker应用容器引擎

若如初见. 提交于 2020-01-13 03:00:33

1.Docker概述

1.1.Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻
量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互
之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

   · Docker应用场景 

  • Web 应用的自动化打包和发布
  • 自动化测试和持续集成、发布
  • 在服务型环境中部署和调整数据库或其他的后台应用        

使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性。

1.2. Docker容器与传统虚拟机比较

  • 传统虚拟机

传统虚拟机技术基于安装在主操作系统上的虚拟机管理系统(如:VirtualBox和VMWare等),创建虚拟机(虚拟出
各种硬件),在虚拟机上安装从操作系统,在从操作系统中安装部署各种应用。

  • Docker

Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚
拟化。与传统的虚拟机相比,Docker优势体现为启动速度快、占用体积小。

1.3. Docker组成部分

2. Docker安装与启动

Docker可以运行在MAC、Windows、CentOS、DEBIAN、UBUNTU等操作系统上,提供社区版和企业版,本课程基于CentOS安装Docker。CentOS6对docker支持的不好,使用docker建议使用CentOS7。

以下是在CentOS7中安装Docker的步骤:

 

 View Code     

2.2. 设置ustc镜像

  ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。

      1、 编辑文件/etc/docker/daemon.json

1

2

3

# 执行如下命令:

mkdir /etc/docker

vi /etc/docker/daemon.json

      2、在文件中加入下面内容

      

1

2

3

{

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

}

2.3. Docker启动与停止命令      

 View Code

3. Docker常用命令

3.1. 镜像相关命令

镜像:Docker镜像是由文件系统叠加而成(是一种文件的存储形式);是docker中的核心概念,可以认为镜像就是对某些运行环境或者软件打的包,用户可以从docker仓库中下载基础镜像到本地,比如开发人员可以从docker仓库拉取(下载)一个只包含centos7系统的基础镜像,然后在这个镜像中安装jdk、mysql、Tomcat和自己开发的应用,最后将这些环境打一个新的镜像。开发人员将这个新的镜像提交给测试人员进行测试,测试人员只需要在测试环境下运行这个镜像就可以了,这样就可以保证开发人员的环境和测试人员的环境完全一致。

Docker提供的关于镜像的操作有:     

  • 查看镜像
  • 搜索镜像
  • 拉取镜像
  • 删除镜像

3.1.1. 查看镜像

REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期

SIZE:镜像大小

3.1.2. 搜索镜像

NAME:镜像名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

3.1.3. 拉取镜像

3.1.4. 删除镜像

3.2. 容器相关命令

容器,也是docker中的核心概念,容器是由镜像运行产生的运行实例。镜像和容器的关系,就如同Java语言中类和对象的关系。

Docker提供的关于容器的操作有:

 

    • 查看容器
    • 创建容器
    • 启动容器
    • 停止容器
    • 文件拷贝
    • 目录挂载
    • 查看容器ip地址
    • 删除容器

 

3.2.1. 查看容器

查看正在运行的容器使用命令:docker ps
查看所有容器使用命令:docker ps -a

3.2.2. 创建并启动容器

可以基于已有的镜像来创建和启动容器,创建与启动容器使用命令:docker run

 

参数说明:
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件
映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t
两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

1)交互式容器

 

以交互式方式创建并启动容器,启动完成后,直接进入当前容器。使用exit命令退出容器。需要注意的是以此种方式
启动容器,如果退出容器,则容器会进入停止状态。

2)守护式容器
创建一个守护式容器;如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称 
不能重复):

 View Code

3.2.3. 停止并启动容器

3.2.4. 文件拷贝

  • 将linux宿主机中的文件拷贝到容器内可以使用命令:

 View Code

 

  • 将文件从容器内拷贝出来到linux宿主机使用命令:
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!