Docker 离线安装与基本使用

简介: Docker 离线安装与基本使用

Docker 离线安装与基本使用



一、Docker 概述


    1.Docker 和虚拟机的区别

    2.Docker 的使用场合

    3.Docker 三大核心

    镜像(Image)

    容器(Container)

    仓库(Repository)


二、安装 Docker


三、Docker 镜像操作


    1.有网方式

    2.离线方式

      1)查看镜像信息

      2)添加新标签

      3)删除镜像

      4)存出镜像

      5)载入镜像

      6)镜像上传


四、Docker 容器操作


    1.容器创建与启用

    2.容器的运行与停止

    3.进入容器

    4.导出容器与导入容器


五、Docker 资源控制


    1.对 CPU 的控制

      1)限制 CPU 使用速率

      2)多任务按比例分享 CPU

      3)限制 CPU 内核使用

    2.对内存使用的限制

    3.对 blkio 的限制


一、Docker 概述



Docker 是在 Linux 容器里运行应用的开源工具,是一种轻量级的"虚拟机"。Docker 的 Logo 设计为蓝色鲸鱼,拖着许多集装箱。如下图,鲸鱼可以看作宿主机,而集装箱可以理解为相互隔离的容器。每个集装箱中都包含自己的应用程序。



image.png


1.Docker 和虚拟机的区别


image.png


2.Docker 的使用场合


打包应用程序简化部署


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


3.Docker 三大核心


镜像(Image)


Docker 镜像是 Docker 容器运行时的只读模板,镜像可以用来创建 Docker 容器。每一个镜像由一系列的层(layers)组成。


容器(Container)


Docker 利用容器来运行应用,一个 Docker 容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像创建的。容器是从镜像创建的运行实例。它可以被启用,开始,停止,删除。每个容器都是互相隔离的,保证安全的平台。


仓库(Repository)


Docker 仓库是用来集中保存镜像的地方,当创建了自己的镜像后,可以使用 push 命令将它上传到共有仓库(Public)或者私用仓库(Private),这样一来当下次要在另外台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。


二、安装 Docker



image.png



[root@Docker ~]# ls
anaconda-ks.cfg  docker-18.06.1-ce.tgz
[root@Docker ~]# tar xf docker-18.06.1-ce.tgz 
[root@Docker ~]# ls
anaconda-ks.cfg  docker  docker-18.06.1-ce.tgz
[root@Docker ~]# cp docker/* /usr/bin/
[root@Docker ~]# dockerd &          #启用docker


image.png


查看 Docker 版本


[root@localhost ~]# docker version


image.png


三、Docker 镜像操作



1.有网方式


1)搜索镜像


  • 命令语法:docker search 关键字 //用来搜索远端官方仓库中的共享镜像


2)获取镜像


  • 命令语法:docker pull 名称


2.离线方式


把刚才提供链接里的 centos7,拖到虚拟机中


[root@Docker ~]# ls
anaconda-ks.cfg  centos7  docker  docker-18.06.1-ce.tgz
[root@Docker ~]# 
[root@Docker ~]# docker load < centos7        #load命令加载成镜像
f972d139738d: Loading layer  208.8MB/208.8MB
Loaded image: centos:latest


image.png


1)查看镜像信息


  • 命令语法:docker images


[root@localhost ~]# docker images       #查看本地所有镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              75835a67d134        2 years ago         200MB


注解:


  • REPOSITORY:镜像属于的仓库(名称)
  • TAG:镜像的标签信息,标记同一仓库中的不同镜像(默认为 latest)
  • IMAGE ID:镜像的唯一 ID号,唯一标识了该镜像。
  • CREATED:镜像创建时间。
  • SIZE:镜像大小。


image.png


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


[root@localhost ~]# docker inspect 75835a67d134


2)添加新标签


  • 命令语法:docker tag 原名称:原标签 新名称:新标签


只是一个标签,而不是新建一个镜像,只是为了方便:


[root@Docker ~]# docker tag centos:latest centos7:centos7
[root@Docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              75835a67d134        2 years ago         200MB
centos7             centos7             75835a67d134        2 years ago         200MB
再添加一个标签,方便后面实验:
[root@Docker ~]# docker tag centos:latest centos8:centos8


image.png


3)删除镜像


使用 docker rmi 命令可以删除多余镜像


有两种方式:


1.根据镜像标签


[root@Docker ~]# docker rmi centos7:centos7
Untagged: centos7:centos7
[root@Docker ~]# docker images


image.png


2.根据镜像 ID


[root@Docker ~]# docker rmi -f 75835a67d134
[root@Docker ~]# docker images


image.png


再重新加载一下镜像


[root@Docker ~]# docker load < centos7


4)存出镜像


  • 当需要把镜像进行迁移的时候,需要保存为本地文件,这样过程叫存出镜像。


[root@Docker ~]# docker save -o test centos:latest


image.png


5)载入镜像


  • 将文件导出,成为镜像,这一过程叫做载入镜像。


[root@Docker ~]# docker rmi centos:latest
[root@Docker ~]# docker load < test
[root@Docker ~]# docker images


image.png


6)镜像上传


本地存储的镜像越来越多,就需要指定一个专门的地方存放这些镜像—仓库。


  • 命令格式:docker push 名称:标签
  • 注意:因为镜像上传需要网络,所以暂不使用


四、Docker 容器操作



1.容器创建与启用


容器的创建必须在镜像的基础上,不可以单独创建,是镜像的可写层。


  • 命令格式:docker create [选项] 镜像 运行的程序


常用选项:


  • -i:表示让容器的输入保持打开。
  • -t:表示让 Docker 分配一个伪终端。
  • --name:指定名字


创建容器:


[root@Docker ~]# docker create -it --name test centos:latest /bin/bash
[root@Docker ~]# docker ps -a


image.png


启用容器:


[root@Docker ~]# docker start test
[root@Docker ~]# docker ps


image.png


如果用户想创建并启动容器,可以执行 docker run 命令


  • 命令格式:docker run [选项] 镜像 运行的程序


[root@Docker ~]# docker run --name zhangsan centos:latest /bin/bash -c ls


image.png


但是通过查看容器运行状态,发现,运行完命令就停止了,start 启动也没有用


[root@Docker ~]# docker ps -a


image.png


有时候需要在后台持续运行这个容器,就需要添加 -d 选项


[root@localhost ~]# docker run -d --name lisi centos:latest /bin/bash -c "while true;do echo ok;done"
[root@localhost ~]# docker ps -a


image.png


2.容器的运行与停止


  • 关闭容器:docker stop 容器名称或 ID 简写
  • 删除容器:docker rm 容器名称或 ID 简写


[root@localhost ~]# docker stop lisi        #关闭容器
[root@localhost ~]# docker rm lisi          #删除容器


image.png


容器的暂停运行


[root@localhost ~]# docker pause test       #暂停运行
[root@localhost ~]# docker unpause test     #继续运行


image.png


3.进入容器


[root@Docker ~]# docker exec -it test /bin/bash
[root@7e74f2e6a025 /]# ls
[root@7e74f2e6a025 /]# exit


image.png


4.导出容器与导入容器


导出容器:将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。


  • 命令格式:docker export 容器ID/名称 > 文件名


[root@Docker ~]# docker export test > centos-test
[root@Docker ~]# ls -lh centos-test 
-rw-r--r-- 1 root root 199M 12月  6 23:04 centos-test


image.png


导入容器:将容器文件生成镜像。


  • 命令格式:cat 文件名 | docker import - 生成的镜像名称:标签


[root@Docker ~]# cat centos-test | docker import - centos:test
[root@Docker ~]# docker images


image.png


五、Docker 资源控制



Cgroup 是 Control group 的简写,是 Linux 内核提供的一种限制所使用物理资源的机制,这些资源主要包括 CPU、内存、blkio。


1.对 CPU 的控制


1)限制 CPU 使用速率


只有在容器运行时才会在系统 CPU 路径下生成目录。


[root@Docker ~]# docker create -it --name aaa centos:latest /bin/bash
[root@Docker ~]# docker start aaa


image.png

image.png


2)多任务按比例分享 CPU


当多个容器任务运行时,很难计算 CPU 的使用率,为了使容器合理使用 CPU 资源,可以通过 --cpu-shares 选项设置 CPU 按比例共享 CPU 资源,这种方式还可以实现 CPU 使用率的动态调整。


[root@Docker ~]# docker run -itd --name bbb --cpu-shares 1024 centos:latest


image.png


3)限制 CPU 内核使用


在 Docker 中可以使用 --cpuset-cpus 选项来使某些程序独享 CPU 内核,以便提高其处理速度。真实的服务器 CPU 有多个内核;而虚拟机里,默认只有一个,内核0。


[root@Docker ~]# cat /proc/cpuinfo 
processor : 0         #这行就是CPU的编号的意思,如果有多个CPU ,会有多个这个段
vendor_id : GenuineIntel
cpu family  : 6
model   : 158
model name  : Intel(R) Core(TM) i5-9300HF CPU @ 2.40GHz
stepping  : 13
microcode : 0xc6
cpu MHz   : 2400.002
cache size  : 8192 KB
---------------------------------


创建一个新的容器 ccc,使该容器上的进程,只可以在内核 0 上运行:


[root@Docker ~]# docker run -itd --name ccc --cpuset-cpus 0 centos:latest
[root@Docker ~]# docker ps | grep ccc
[root@Docker ~]# cat /sys/fs/cgroup/cpuset/docker/根据容器ID号来写/cpuset.cpus
0


image.png


2.对内存使用的限制


在 Docker 中可以通过 docker run -m 命令来限制容器内存使用量,当内存超过了限制的容量,Linux 内核将会尝试收回这些内存,如果仍旧没法控制使用内存在限制范围之内,进程就会被杀死。


创建一个新的容器 ddd ,内存限制为 512 MB:


[root@Docker ~]# docker run -itd -m 512MB --name ddd centos:latest
[root@Docker ~]# docker ps | grep ddd
[root@Docker ~]# cat /sys/fs/cgroup/memory/docker/根据容器ID号来写/memory.limit_in_bytes


image.png


3.对 blkio 的限制


如果在一台服务器上进行容器的混合部署,那么会存在同时几个程序写入磁盘数据的情况,这时可以通过--device-write-bps 选项来限制每秒写 io 次数来限制指定设备的写速度。相应的还有--device-read-bps 选项可以限制读取的速度,但这种方式只能限制设备,不能限制分区。


限制新建容器的 /dev/sda 的写入速度为 1MB:


[root@Docker ~]# docker run -itd --name eee --device-write-bps /dev/sda:1M centos:latest
[root@Docker ~]# docker ps | grep eee
[root@Docker ~]# cat/sys/fs/cgroup/blkio/docker/根据容器ID号来写/blkio.throttle.write_bps_device


image.png

相关文章
|
8天前
|
Docker 容器
Docker安装及镜像源修改
本文介绍了Docker的安装过程和如何修改Docker镜像源以加速下载。包括更新系统包、安装所需软件包、设置yum源、安装Docker以及验证安装是否成功。接着,提供了修改Docker镜像源的步骤,包括创建配置文件、编辑配置文件以设置镜像加速地址,并提供了几个常用的国内镜像源地址。最后,通过重启Docker服务和检查配置是否生效来完成镜像源的修改。
Docker安装及镜像源修改
|
9天前
|
Docker 容器
centos7.3之安装docker
centos7.3之安装docker
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
163 3
Ubuntu 18.04 安装Docker实战案例
|
1月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
93 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
20天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
2月前
|
消息中间件 Docker 容器
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
这篇文章提供了RabbitMQ的安装和基本使用教程,包括如何使用Docker拉取RabbitMQ镜像、创建容器、通过浏览器访问管理界面,以及如何创建交换机、队列、绑定和使用direct、fanout和topic三种类型的交换器进行消息发布和接收的测试。
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
|
2月前
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
2月前
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
2月前
|
存储 搜索推荐 应用服务中间件
深入探索Docker 安装 Tomcat
【8月更文挑战第26天】
44 4
下一篇
无影云桌面