Docker 运维 - 从零开始学习

Posted serendipity_cat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 | 容器管理

Rancher 运维 - 从零开始学习 | RKE部署K8S | 容器管理

OpenStack 运维 - 从零开始学习

OpenStack 运维 - 从零开始学习