docker--什么是docker

Docker 入门

  • Docker 概述
  • 容器技术的发展

物理计算机向虚拟机演化

一台主机可以运行多个相互隔离的操作系统及应用

轻量级虚拟化技术出现

一台主机可以运行多个相互隔离应用,减少了多个操作系统对资源的占用

容器编排技术出现

为了更方便的创建管理大量容器,容器编排工具得到了发展和应用

Docker是什么?

Docker是一种轻量级"虚拟机"的管理工具,这里的"虚拟机"称为容器,容器与传统的虚拟机不同,每个容器没有独立的操作系统及操作系统对资源的占用

容器相比传统虚拟机,占用资源更少,创建及管理更方便、更灵活

容器技术的核心概念

镜像:是一个只读的静态模板,类似于虚拟机的快照,是容器运行的基础

容器:容器是从镜像创建的运行实例,它会在镜像之上创建一个可写层

仓库:是集中存放镜像的地方

  • Docker 安装
  • Docker版本

Docker-ce Docker社区版,主要用于个人开发者测试使用,免费版本;

Docker-ee Docker企业版,主要用于为企业开发及应用部署使用,收费版本

Docker安装方法

YUM源可以使用官方YUM源、清华大学开源镜像站配置YUM源、阿里云开源镜像站提供的YUM源;

建议选择使用阿里云开源镜像站提供的YUM源,原因速度快

百度搜"阿里云开源镜像站"--"阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区"--"容器"--"docker-ce"--"CentOS 7 (使用 yum 进行安装)"--复制安装命令中的URL路径

"https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"

在docker host上使用 wget下载到/etc/yum.repos.d目录中即可

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

列出并排序存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

yum list docker-ce --showduplicates | sort -r

yum -y install docker-ce-20.10.20

如果启用了多个 Docker 仓库,则在 yum install 或 yum update 命令中未指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合稳定性需求。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64 3:20.10.9-3.el7 docker-ce-stable

docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable

docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable

启动docker

systemctl start docker

查看已安装的Docker版本

docker version

  • Docker 镜像的搜索及获取

镜像获取位置:

Docker hub官方仓库

本地私有仓库(本机或内部公共仓库)

注:hub.docker.com为官方镜像站点,需通过vpn连接后可以登录

镜像搜索:

docker search 镜像名

如:docker search centos

镜像获取:(如果没写标签,则为latest,即最新版本)

docker pull 镜像名[:tag]

如:docker pull centos:7

docker pull nginx:1.20

查看镜像信息:

docker images

给镜像添加新标签:

docker tag centos:7 centos:latest

删除镜像:

docker rmi centos:latest

镜像迁移:

一台主机上导出:docker save -o centos.tar centos:7

另一台主机导入:docker load -i centos.tar

  • 容器操作:
  • 容器的创建和启动

docker create -it 镜像 /bin/bash

docker ps -a

docker start 容器

或创建并启动容器

docker run -it centos:7 /bin/bash

Docker run -d -p 80:80 nginx:1.20

-i 让容器的标准输入保持打开(即交互式);

-t 选项让 Docker 分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上;

-it 保持命令交互式输入的终端;

-d 以守护态(Daemonized)形式后台运行(一般是运行发布服务的容器)

容器的终止

docker stop 容器

容器的进入和退出

docker exec -it 容器 /bin/bash #进入容器并打开一个子shell

docker attach 容器 #容器运行时,有终端被打开时可用

exit #退出当前环境,/bin/bash命令结束,没有其它进程时,容器将停止运行

Ctrl-p+q #保持当前环境不变,容器继续运行(持续按住Ctrl,再按p,按q)


注:

docker exec 用于在容器中启动新的进程(如:/bin/bash、ls等)

docker attach 用于连接到运行容器的控制台(没有分配终端时,不能使用,如-d后台运行时)

测试:

docker pull nginx:1.20 #下载nginx:1.20镜像

docker run -d -P nginx:1.20 #-d为后台运行nginx服务,没开终端

docker exec -it 容器 /bin/bash #进入容器时,打开/bin/bash子进程

然后退出,exit或ctrl都不会结束容器运行

docker attach 容器 #因为容器未打开终端,不能进入容器

按ctrl+c终止命令,容器也会结束

容器的迁移

一台主机上导出: docker export 容器 > 文件名

另一台主机导入: cat 文件名 | docker import - 镜像名:标签

容器的删除:

docker rm 容器

相关推荐
退役小学生呀7 分钟前
十、K8s集群资源合理化分配
linux·云原生·容器·kubernetes·k8s
PHOSKEY31 分钟前
闪测仪应用案例丨手机中框如何突破「尺寸检测」瓶颈?
运维·智能手机·自动化
JIAKSK1 小时前
VitePress 接入百度统计:全面教程与优化指南
运维·数据可视化
网硕互联的小客服1 小时前
未来趋势:AI与量子计算对服务器安全的影响
运维·服务器·网络·网络安全·量子计算
宇钶宇夕2 小时前
STEP 7 MicroWIN SMART V2.2 的详细安装步骤及注意事项
运维·服务器·程序人生·自动化
czhc11400756632 小时前
Linux 77 FTP
linux·运维·服务器
魂尾ac2 小时前
Centos Docker 安装(100%成功)
linux·docker·centos
天若有情6733 小时前
【Linux】02_CentOS 7 开机运行级别详解:从基础概念到实战配置
linux·运维·centos
張萠飛3 小时前
Linux中程序的limits中的Max open files的配置由哪些参数决定
linux·运维·服务器
Johny_Zhao9 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维