Docker 运维 - 从零开始学习
Posted serendipity_cat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 运维 - 从零开始学习相关的知识,希望对你有一定的参考价值。
Docker 运维 - 从零开始学习
一、Docker概述
更新时间:2021年5月19日
Docker是一个在Linux里运行的容器虚拟化软件,提供了轻量级的应用隔离方案,并且为我们提供了应用程序快速扩容、缩容的能力
Github开源项目地址:https://github.com/docker
Docker官方网站地址:https://www.docker.com/
二、什么是容器?
Package Software into Standardized Units for Development, Shipment and Deployment
将软件打包成标准化单元,以便开发、装运和部署
容器是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码、运行时、系统工具、系统库、设置等。不管环境如何,集装箱化软件都可以运行相同的Linux和Windows应用程序。容器将软件与其周围环境隔离开来,例如开发环境和登台环境之间的差异,并有助于减少在同一基础架构上运行不同软件的团队之间的冲突
三、Docker的特点
轻便小巧,效率至上
① 轻量级
在一台机器上运行的Docker容器共享该机器的操作系统内核; 他们立即开始并使用更少的计算和内存。图像由文件系统层构建并共享公用文件。这最大限度地减少了磁盘使用量,图像下载速度更快
② 标准
Docker容器基于开放标准,可在所有主要Linux发行版,Microsoft Windows以及任何基础架构(包括虚拟机,裸机和云中)上运行
③ 安全
Docker容器将应用程序彼此隔离并从底层基础架构中分离出来。Docker提供了最强大的默认隔离功能,可以将应用程序问题限制在一个容器中,而不是整个机器上
四、Docker与传统虚拟机的区别
特性 | Docker 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
计算能力损耗 | 几乎无 | 损耗50%作用 |
性能 | 接近原生 | 弱于 |
系统支持量 | (单机) | 上千个 几十个 |
隔离性 | 资源限制 | 完全隔离 |
五、Docker 核心概念
① 镜像(Image)
Docker镜像是创建容器的基础,类似于快照
② 容器(Container)
容器即服务,每个服务相互隔离
③ 仓库(Repository)
可供随时调用的镜像仓库,分公共仓库和私有仓库
六、Docker 安装部署
#!/bin/bash
#设置Docker存储库
yum install -y yum-utils
#安装国内软件包
yum-config-manager \\
--add-repo \\
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装Docker Engine和容器
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker && systemctl enable docker
查看版本
docker version
七、容器镜像加速器
类似与YUM源,使用国内源可加快镜像拉取的速度
① 打开阿里云控制台
搜索 容器镜像服务
② 选择镜像加速器
③ 更换容器镜像源
八、Docker 镜像操作
① 镜像搜索 | search
命令格式
docker search 镜像名:[标签] | 镜像ID
举例:docker search nginx
搜索内容默认会按照星级进行排序
举例:只搜索100星以上的目标
docker search -f stars=100 nginx
② 拉取(下载)镜像 | pull
命令格式
docker pull 镜像名:[标签] | 镜像ID
举例:docker pull nginx
如果不加标识则默认会选择官方最新的Nginx镜像进行获取
举例:下载指定版本的mysql
docker pull mysql:5.7
③ 查看镜像 | images/inspect
命令格式
docker images
查看镜像详细的信息
docker inspect 镜像名:[标签] | 镜像ID
举例:docker inspect nginx
④ 删除镜像 | rmi
命令格式
docker rmi 镜像名:[标签] | 镜像ID
举例:通过镜像名删除镜像
docker rmi nginx:laster
举例:通过镜像ID删除镜像
docker rmi f0b8a9a54136
⑤ 修改镜像名及标签 | tag
命令格式
docker tag 镜像名:[标签] 新镜像名:[新标签]
举例:docker tag nginx:latest new_nginx:1.12.0
⑥ 存储/载入镜像 | save/load
命令格式
docker save -o 存储文件名 存储镜像
常用参数
-o 写入数据
举例:docker save -o nginx nginx
命令格式
docker load <载入文件
举例:docker load <nginx
九、Docker 容器操作
① 创建容器 | create
命令格式
docker create [参数] 镜像名:[标签] | 镜像ID 运行程序
常用参数
- -d 开启守护进程,可在后台运行
- -i 交互式操作,保持连接状态
- -t 分配伪终端,一般与“i”一起使用
- -p 映射端口[目标端口:源端口]
举例:docker create -it -d -p 80:80 nginx /bin/bash
② 启动容器 | run
命令格式
docker run [参数] 镜像名:[标签] | 镜像ID
常用参数
- -d 开启守护进程,可在后台运行
- -i 交互式操作,保持连接状态
- -t 分配伪终端,一般与“i”一起使用
- -p 映射端口[目标端口:源端口]
举例:docker run -it -d -p 80:80 nginx
③ 进程管理
►查看进程 | ps
命令格式
docker ps [参数]
常用参数
-a 显示所有容器,默认显示刚刚运行的
举例:docker ps -a
►运行状态 | start/stop/restart
命令格式
docker start/stop/restart 镜像名:[标签] | 镜像ID
举例:docker stop 6127d8cc1f3c
►删除进程 | rm -f
命令格式
docker rm -f 镜像名:[标签] | 镜像ID
举例:docker rm -f 6127d8cc1f3c
④ 进入容器 | exec
命令格式
docker [参数] exec 镜像名:[标签] | 镜像ID 运行程序
举例:docker exec -it 87d2da7b401b /bin/bash
⑤ 容器导入导出 | import/export
常用于将Docker容器迁移到另一个服务器中
命令格式
docker export 进程ID > 文件名
举例:docker export f0b8a9a54136 > nginx
命令格式
docker import 文件名 > 镜像名:[标签]
举例:cat Web | docker import - web:nginx
以上是关于Docker 运维 - 从零开始学习的主要内容,如果未能解决你的问题,请参考以下文章
Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理
Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理
Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理