Docker系列之docker简介及安装

目录

一、云计算的三种服务

1.LaaS(基础设施即服务)

2.PaaS(平台即服务,中间件都准备好了)

3.SaaS(软件即服务)

二、Docker的基本管理

1.Docker的介绍及概念

    ① Docker是什么?

    ②Docker容器与虚拟机的区别

    ③Docker的使用场景 

三、Docker的核心概念以及安装方式

 1.docker核心概念

     ①镜像(image):一个面向docker容器引擎的只读模板

     ②容器(container):从镜像创建的运行实例

     ③仓库(repository):集中保存镜像的地方

 2.容器的优点

四、安装部署Docker容器

 1.首先关闭防火墙

 2.安装依赖包

 3.设置阿里云镜像源

 ​4.安装Docker-CE (开机自启)

 ​5.查看 docker 版本信息 

五、Docker容器 镜像操作 

1.搜索镜像

2.获取镜像

3.镜像加速 

4.Docker镜像基本命令

①镜像日志文件位置

②查看下载的镜像文件信息

③查看下载到本地的所有镜像 

④根据镜像的唯一标识 ID 号,获取镜像详细信息

⑤为本地的镜像添加新的标签

⑥删除镜像

⑦存出镜像:将镜像保存成为本地文件

​⑧载入镜像:将镜像文件导入到镜像库中

⑨上传镜像

5. 网络优化

​六、Docker 容器操作

1.创建容器

2.查看容器的运行状态 

3.启动容器 

4.运行启动容器 

5.查看正在运行的容器 

6.进入到容器内部 

7.删除容器(删除容器前,需要先停止容器) 

8.启动容器

9.退出容器

10.容器导入导出


一、云计算的三种服务

1.LaaS(基础设施即服务)

        Infrastructure-as-a-Service (基础设施即服务),有时候也叫做 Hardware-as-a-Service,以前如果想在办公室或者公司的网站上运行一些企业应用,需要去买服务器,或者别的高昂的硬件来控制本地应用,让企业业务运行起来。
        但是现在有 laaS,企业可以将硬件外包到别的地方去。laaS.公司会提供场外服务器,存储和网络硬件,可供租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运 行其应用。

2.PaaS(平台即服务,中间件都准备好了)

        PaaS: Platform-as-a-Service (平台即服务),某些时候也叫作中间件。公司所有的开发都可以在这层进行,节省了时间和资源。
        PaaS 公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在便件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟士机,存储,安全以及应用开发协作工具等。

3.SaaS(软件即服务)

        SaaS 层是和日常生活接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是 SaaS了。
        你消费的服务完全是从网页如 Netfix,MOG,GoogleApps,Dropbox 或者苹果的iCloud 那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。国内的下秒数据 Nexadata 可以快速接入新数据(尤其 SaaS 系统),准确沉淀明细数据,形成准确主数据,业务变化能快速修改。

二、Docker的基本管理

1.Docker的介绍及概念

    ① Docker是什么?

             a.是一种轻量级的“虚拟机“

             b.在linux容器里运行应用的开源工具

             c.Docker 的Logo设计为蓝色鲸鱼,拖着许多集装箱,鲸鱼可以看作为宿主机,集装箱

                可以理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。

               Docker从一开始就以提供标准化的运行时环境为目标,也真正做到"Build,Ship and                       Run any APP,Angwhere",可以将同一个构建版本用于开发、测试、预发布、生产等                   任何环境,并且做到了与底层操作系统的解耦。在此基础上还进一步发展出了Caas

               (容器即服务)技术。

    ②Docker容器与虚拟机的区别

选项 虚拟机 docker容器
启动时间 快速(毫秒级别的启动)
容量
系统 逻辑隔离 依赖于内核
安全性


    ③Docker的使用场景 

          打包应用程序简化部署

          可脱离底层硬件任意迁移(例如:服务器从腾讯云迁移到阿里云)

三、Docker的核心概念以及安装方式

 1.docker核心概念

     ①镜像(image):一个面向docker容器引擎的只读模板

          包含了各种环境和服务(tomcat、mysql、redis等)相当于一个模板

          镜像是运行容器的基础,包含运行程序所需的全部内容

     ②容器(container):从镜像创建的运行实例

          对象容器是镜像运行起来(run)之后的实例,可以把容器看成一个简易的Linux环境容器

     ③仓库(repository):集中保存镜像的地方

         仓库是存放镜像的场所,最大的公开仓库是Docker Hub    私有仓库harbor

补充:CentOS安装Docker的两种方式

              a.使用CURL获得Docker的安装脚本进行安装

              b.使用YUM仓库来安装Docker

 2.容器的优点

      灵活:即使是在复杂的应用也可以集装箱化
      轻量级:容器利用并共享主机内核。
      可互换:可恶意即时部署更新和升级
      便携式:可以在本地构建,部署到云,并在任何地方运行
      可扩展:可以增加并自动分发容器副本
      可堆叠:可以垂直和即时堆叠服务

四、安装部署Docker容器

 1.首先关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

 2.安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

3.设置阿里云镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

 4.安装Docker-CE (开机自启)

yum install -y docker-ce
systemctl start docker
systemctl enable docker

 5.查看 docker 版本信息 

docker version

五、Docker容器 镜像操作 

1.搜索镜像

格式:docker search 关键字

2.获取镜像

格式:docker pull 仓库名称[:标签]
#如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。

3.镜像加速 

浏览器访问 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 获取镜像加速器配置

阿里容器镜像加速

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1fam3t0i.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

做了这一步之后,下载镜像就不会出现卡死状态,反而速度直接起飞 !呼~呼~呼~

4.Docker镜像基本命令

①镜像日志文件位置

镜像下载后日志存放在 /var/lib/docker

②查看下载的镜像文件信息

cat /var/lib/docker/image/overlay2/repositories.json

③查看下载到本地的所有镜像 

docker images
 
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae2feff98a0c 9 days ago 133MB
--------------------------------------------------------------------------------------------
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;
---------------------------------------------------------------------------------------

④根据镜像的唯一标识 ID 号,获取镜像详细信息

格式:docker inspect 镜像ID号

⑤为本地的镜像添加新的标签

格式:docker tag 名称:[标签] 新名称:[新标签]

⑥删除镜像

格式:
docker rmi 仓库名称:标签  #当一个镜像有多个标签时,只是删除其中指定的标签
或者
docker rmi 镜像ID号    #会彻底删除该镜像
 
注意:如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

⑦存出镜像:将镜像保存成为本地文件

格式:docker save -o 存储文件名 存储的镜像

 ⑧载入镜像:将镜像文件导入到镜像库中

格式:
docker load < 存出的文件
或者
docker load -i 存出的文件

⑨上传镜像

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号。https://hub.docker.com
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传。
 

docker tag       #添加新的标签
docker login    #登录公共仓库
Username:   #用户
password:    #密码
docker push   #上传镜像

5. 网络优化

vim /etc/sysctl.conf
#添加 net.ipv4.ip_forward=1

sysctl -p
service network restart
systemctl restart docker

 六、Docker 容器操作

1.创建容器

新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器

docker create命令能够基于镜像创建容器。(就是将镜像加载到容器的过程)

该命令执行的效果类似于docker run -d,即创建一个将在系统后台运行的容器。

但是与docker run -d不同的是,docker create创建的容器并未实际启动,还需要执行docker start命令或docker run命令以启动容器。

事实上,docker create命令常用于在启动容器之前进行必要的设置。

格式:docker create [选项] 镜像
常用选项:
-i:让容器的输入保持打开
-t:让 Docker 分配一个伪终端

注释:

-it就等于-i和-t,这两个参数的作用是,为该docker创建一个伪终端,这样就可以进入到容器的交互模式(也就是直接进入到容器里面)

后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash


2.查看容器的运行状态 

docker ps  ## 查看运行中的容器
docker ps -a  查看全部容器

-a 列出所有的容器,包括未运行的容器

3.启动容器 

可以直接执行 docker run 命令, 等同于先执行 docker create 命令,再执行 docker start 命令。

注意:容器是一个与其中运行的 shell 命令共存亡的终端,命令运行容器运行, 命令结束容器退出。

当利用 docker run 来创建容器时, Docker 在后台的标准运行过程是:

(1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;

(2)利用镜像创建并启动一个容器;

(3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;

(4)从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;

(5)分配一个地址池中的 IP 地址给容器;

(6)执行用户指定的应用程序,执行完毕后容器被终止运行。

docker run centos:7 /usr/bin/bash -c ls /
docker ps -a    #会发现创建了一个新容器并启动执行一条 shell 命令,之后就停止了

run命令

从没有镜像到生成一个运行的容器总结为三个步骤

1、下载镜像
2、创建容器
3、启动容器

但是在生产环境中是怎么方便怎么来
run命令会将他三合一
所以我用较多的是 run

docker run -d nginx /bin/bash

-d 是daemon 开启守护进程,这里不加-d是开启不了容器的

 #简单操作
docker run 镜像标识|镜像名称[:tag]
#常用参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]
选项:
-d:后台运行容器
-p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
--name 容器名称:指定容器的名称 
--it 使用交互方式运行,进入容器查看内容
-P:指定容器端口
-p:随机指定端口

例:docker run --name mynginx -p 80:80 nginx        #操作台运行
    docker run -di --name mynginx -p 80:80 nginx    #后台运行

4.运行启动容器 

 #简单操作
docker run 镜像标识|镜像名称[:tag]
#常用参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]
选项:
-d:后台运行容器
-p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
--name 容器名称:指定容器的名称 
--it 使用交互方式运行,进入容器查看内容
-P:指定容器端口
-p:随机指定端口

例:docker run --name mynginx -p 80:80 nginx        #操作台运行
    docker run -di --name mynginx -p 80:80 nginx    #后台运行

5.查看正在运行的容器 

docker ps 
选项:
-f:过滤    
-a:查看全部的容器,包括没有运行的
-q:只查看容器的标识
-n=?:显示最近创建的容器
-l:查看最后创建的容器

例:docker ps -f status=exited  #过滤已经存在但停止的容器
    docker ps -n 5   #列出最近创建的n个容器

6.进入到容器内部 

docker exec -it 容器id/容器名称 /bin/bash        
docker attach 容器id

区别:
docker exec:进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach:进入容器正在执行的终端,不会启动新的进程

7.删除容器(删除容器前,需要先停止容器) 

docker stop 容器id                                   #停止指定的容器
docker stop $(docker ps -qa)                       #停止全部容器

docker rm 容器名/容器id                               #删除指定的容器,删除前该容器需要停止
docker rm $(docker ps -qa)                           #删除状态不是up外的所有容器
docker ps -a | awk '{print "docker rm "$1}'|bash   #删除状态不是up外的所有容器

8.启动容器

docker start 容器id/容器名称

9.退出容器

exit            #直接容器停止并退出
Ctrl+P+Q        #容器不停止退出 

10.容器导入导出

#导出格式:docker export 容器ID/名称 > 文件名
docker export 2592d3fad0fb > centos7.tar
 
#导入格式:cat 文件名 | docker import – 镜像名称:标签
cat centos7.tar | docker import - centos7:test  #导入后会生成镜像,但不会创建容器


 

猜你喜欢

转载自blog.csdn.net/weixin_52269501/article/details/130312298