Docker 离线安装_安装下载

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、Docker 概述

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

1.Docker 和虚拟机的区别

特性 Docker容器 虚拟机
启动速度 秒级 分钟级
计算能力损耗 几乎无 损耗50%左右
性能 接近原生 弱于
系统支持量(单机) 上千个 几十个
隔离性 资源限制 完全隔离

2.Docker 的使用场合

打包应用程序简化部署
可脱离底层硬件任意迁移——如:服务器从腾讯云迁移到阿里云

3.Docker 三大核心

镜像(Image)

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

容器(Container)

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

仓库(Repository)

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

二、安装 Docker

主机名 操作系统 IP地址
Docker CentOS7 192.168.1.1
[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

在这里插入图片描述
查看 Docker 版本

[root@localhost ~]# docker version

在这里插入图片描述

三、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

在这里插入图片描述

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:镜像大小。

在这里插入图片描述
还可以根据镜像的唯一标识 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

在这里插入图片描述

3)删除镜像

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

有两种方式:

  1. 根据镜像标签
[root@Docker ~]# docker rmi centos7:centos7
Untagged: centos7:centos7
[root@Docker ~]# docker images

在这里插入图片描述

  1. 根据镜像 ID
[root@Docker ~]# docker rmi -f 75835a67d134
[root@Docker ~]# docker images

在这里插入图片描述
再重新加载一下镜像

[root@Docker ~]# docker load < centos7

4)存出镜像

  • 当需要把镜像进行迁移的时候,需要保存为本地文件,这样过程叫存出镜像。
[root@Docker ~]# docker save -o test centos:latest

在这里插入图片描述

5)载入镜像

  • 将文件导出,成为镜像,这一过程叫做载入镜像。
[root@Docker ~]# docker rmi centos:latest
[root@Docker ~]# docker load < test
[root@Docker ~]# docker images

在这里插入图片描述

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

在这里插入图片描述
启用容器:

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

在这里插入图片描述
如果用户想创建并启动容器,可以执行 docker run 命令

  • 命令格式docker run [选项] 镜像 运行的程序
[root@Docker ~]# docker run --name zhangsan centos:latest /bin/bash -c ls

在这里插入图片描述
但是通过查看容器运行状态,发现,运行完命令就停止了,start 启动也没有用

[root@Docker ~]# docker ps -a

在这里插入图片描述

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

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

在这里插入图片描述

2.容器的运行与停止

  • 关闭容器docker stop 容器名称或 ID 简写
  • 删除容器docker rm 容器名称或 ID 简写
[root@localhost ~]# docker stop lisi				#关闭容器
[root@localhost ~]# docker rm lisi					#删除容器

在这里插入图片描述
容器的暂停运行

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

在这里插入图片描述

3.进入容器

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

在这里插入图片描述

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

在这里插入图片描述
导入容器:将容器文件生成镜像。

  • 命令格式:cat 文件名 | docker import – 生成的镜像名称:标签
[root@Docker ~]# cat centos-test | docker import - centos:test
[root@Docker ~]# docker images

在这里插入图片描述

五、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

在这里插入图片描述
在这里插入图片描述

2)多任务按比例分享 CPU

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189258.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 〖Docker指南②〗Docker常用命令汇总

    〖Docker指南②〗Docker常用命令汇总Docker常用命令汇总最新版|帮助命令|镜像命令|容器命令

    2022年9月18日
    0
  • docker部署jenkins安装使用教程_docker搭建python开发环境

    docker部署jenkins安装使用教程_docker搭建python开发环境前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月31日
    3
  • Docker总结(配合阿里云容器镜像服务)「建议收藏」

    Docker总结(配合阿里云容器镜像服务)「建议收藏」Docker是个很好的工具,刚开始用觉得还没虚拟环境好用,随着深入了解,越发觉得Docker好用,今天就来总结一下使用心得。一、Docker基础1、背景知识1)docker是什么?Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个…

    2022年5月24日
    62
  • Docker Compose详解

    Docker Compose详解使用 DockerCompos 预计阅读时间 11 分钟 DockerCompos 是一种用于帮助定义和共享多容器应用程序的工具 使用 Compose 我们可以创建一个 YAML 文件来定义服务 并且使用一个命令 可以启动所有内容或将其全部关闭 使用 Compose 的最大优势是您可以在一个文件中定义您的应用程序堆栈 将其保存在项目 repo 的根目录中 它现在是版本控制的 并且可以轻松地让其他人为您的项目做出贡献 有人只需要克隆您的存储库并启动撰写应用程序 事实上 你现在可能会在 GitHub Gi

    2025年6月17日
    0
  • docker镜像操作_docker 本地镜像

    docker镜像操作_docker 本地镜像前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月31日
    6
  • Docker设置2375端口「建议收藏」

    Docker设置2375端口「建议收藏」Docker设置2375端口1.查看docker.service文件位置2.修改docker.service文件1.查看docker.service文件位置systemctlstatusdockerdocker.service路径为:/usr/lib/systemd/system/docker.service2.修改docker.service文件…

    2022年5月5日
    310

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号