1 Docker的使用和安装

1.1 为什么使用docker

 我们的项目面临的环境: (1)开发环境 (2)测试环境 (3)线上环境

 使用docker技术,来解决项目跨平台问题。

 对于开发和运维人员来说,最希望的效果就是一次创建或者配置后,可以在任意地方、任意时间让应用正常运行,对于算法研究人员来说,可能不同的算法需要不同版本的软件,那么在同一个环境中就会存在冲突,docker 的环境隔离就可以很方便的用于不同环境的配置。具体来说,docker优势主要有以下几个方面:

快速交付和部署

使用docker,开发人员可以使用镜像快速构建一套标准的开发环境;开发完成后,测试和运维人员可以使用完全相同的环境部署代码,只要是开发测试过的代码就可以确保在生产环境无缝运行。docker可以快速创建和删除容器,实现快速迭代。

高效的资源利用

运行docker容器不需要额外的虚拟化管理程序的支持,docker是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低。

轻松的迁移和扩展

docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、服务器等,同时支持主流的操作系统发行版本,这种兼容性让用户可以在不同平台间轻松的迁移应用。

简单的更新管理

使用Dockerfile生成镜像的方式,只需要小小的配置修改,就可以替代以往大量的更新工作,所有的修改都以增量的方式进行分发和更新,从而实现自动化且高效的容器管理。

1.2 docker概念

Docker是基于Go语言进行开发实现,一个开源的应用容器引擎。采用Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,也可以实现虚拟化,隔离的进程独立于宿主和其他的隔离进程,因此也称其为容器。

        可以将Docker容器理解为一种轻量级的沙盒,每个容器内运行着一个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信。容器的创建和停止十分快速,几乎跟创建和终止原生应用一致;另外,容器自身对系统资源的额外需求也十分有限,远远低于传统虚拟机。很多时候,直接将容器当作应用本身也没有任何问题.

1.3 安装  docker

Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本课程基于CentOS7安装Docker。官网: Docker: Accelerated, Containerized Application Development

步骤:

 1、yum包更新到最新---因为现在的docker更新比较快,而现在我们使用的centos不是最新
yum update
2、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
3、设置yum源---从哪个网址下载docker软件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4、安装docker ,出现输入的界面都按y
yum install -y docker-ce
5、查看docker版本,验证是否验证成功
docker -v

 1.4 docker的架构

 

通过上图可以得知,Docker 在运行时分为 Docker 引擎(服务端守护进程) 和 客户端工具,我们日常使用各种 docker 命令,其实就是在使用 客户端工具 与 Docker 引擎 进行交互。

  • 镜像(lmage) : Docker镜像(lmage),就相当于是—个root文件系统。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。

  • 容器(Container) :镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

    比如: 安装mysql====>下载mysql的镜像 【类】 ---->根据镜像可以创XQ [对象

1.5 配置镜像加速器

默认情况下,将来从docker hub (Docker)上下载docker镜像,太慢。一般都会配置镜像加速器:

USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)

==阿里云== 网易云

腾讯云

 

 

 

1.6 docker中常用的命令

1.6.1 关于docker服务的命令

查看docker服务的状态: systemctl status docker

关闭docker服务: systemctl stop docker

启动docker服务: systemctl start docker

重启docker服务: systemctl restart docker

开启启动docker服务: systemctl enable docker

 1.6.2 关于docker镜像的命令

 

(1)拉取指定的镜像到本地

docker pull centos #拉取centos镜像  如果没有使用版本默认为latest


docker pull centos:7 # :7表示版本号     centos:7

docker pull tomcat   tomcat

docker pull myaql:5.7    myaql:5.7

 (2) 查看本地镜像

docker images

 

(3) 删除本地镜像

docker rmi imageID  #根据镜像id删除镜像
cocker rmi name:tag #根据名称版本号删除镜像

 

 

 (4) 搜索镜像----建议在镜像仓库搜索 www.hub.docker.com

docker search  + 镜像名称 

 1.6.3 关于docker容器相关的命令

 

(1)根据镜像创建容器: 第一种: 这种方式如果退出容器时,会关闭容器。

docker run -it --name=c1 centos:latest /bin/bash 

 -i : 保持容器一直运行 因为容器没有客户端连接会自动关闭

-t : 给容器分配伪终端接收命令  使用exit容器会退出并关闭

--name : 给容器取名字

cenost:latest  镜像 加版本号

/bin/bash  进入容器的初始化指令  这里相当于  打开了一个shell窗口

  1. 查看所有的容器

docker ps #查询正在运行的容器
docker ps -a  # 查询所有的容器。
  1. 根据镜像创建容器:

docker run -id --name=c2 centos:latest  #根据镜像创建容器当不会进入容器内部
  1. 进入指定容器内部 exit 该进入容器后再退出则不会关闭容器

 docker exec -it c2  /bin/bash
 c2:容器的名称
  1. 关闭容器:

docker stop 容器id或名称
  1. 开启容器

docker start 容器id或名称
  1. 删除容器---该容器必须是关闭状态

docker rm 容器id或名称

(2)查看所有的容器

docker ps #查询正在运行的容器

 docker ps -a  # 查询所有的容器。

 (3) 根据镜像创建容器:

 -d : 表示后台运行 和 i 配合

(4)  进入开启的容器内部

docker exec -it ct1 /bin/bash

docker exec -it ct2 /bin/bash 

  (5) 启动容器

docker start ct1

  (6)关闭容器

docker stop ct1

 (7) 删除容器    (关闭状态)

docker rm ct1  

docker rm ct2

 (8)  查看容器信息

docker inspect  + 容器名/id

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值