小阿轩yx-Docker 初识

小阿轩yx-Docker 初识

Docker 概述

特性

  • 轻便
  • 快速
  • 使应用达到快速迭代目的
  • 小的变更就可以马上看到效果
  • 每次变更一小部分其实是一种非常安全的方式

Docker 容器

  • 能够帮助开发人员、系统管理员、质量管理和版本控制工程师在一个生产环节中一起协同工作
  • 指定一套容器标准能够使系统管理员更改容器时,程序员不用关心容器变化,隔离了开发和管理,简化了开发和部署成本

什么是 Docker

  • 创建运行在云平台上的应用
  • 脱离底层的硬件
  • 任何时间、地点可获取这些资源
  • 可以在一台主机上轻松为任何应用创建一个轻量级、可移植的、自给自足的容器
  • 容器打包应用程序,简化了重新部署、调试的重复工作,极大提高工作效率

Docker 的优势

  • 运行速度很快
  • 启动和停止可以秒级实现,比传统虚拟机要快很多
  • 基本不消耗额外的系统资源
  • 保证应用性能同时减小了系统开销,使得一台主机可同时运行数千个 Docker 容器
  • 操作方便,可以通过 Dockerfile 配置文件支持灵活的自动化创建和部署

核心解决的问题

  • 利用容器来实现类似虚拟机的功能
  • 从而利用更加节省的硬件资源提供给用户更多的计算资源

Docker 容器与传统虚拟机的区别

  • 传统虚拟机需要额外的虚拟机管理程序和虚拟机操作系统层
  • Docker 容器则是直接在操作系统层面之上实现的虚拟化

Docker 与传统虚拟机架构图

镜像

Docker 三大核心概念

  • 镜像
  • 容器
  • 仓库

Docker 镜像

  • 创建容器的基础
  • 类似虚拟机的快照,可理解为一个面向 Docker 容器引擎的只读模版
  • 提供了简单的机制来创建和更新现有的镜像

容器

  • 从镜像创建的运行实例
  • 可以被启动、停止和删除
  • 创建的每个容器都是相互隔离、互不可见,以保证安全性的平台

可将容器看作是一个简易版的 Linux 环境,Docker 利用容器来运行和隔离应用

仓库

用来集中保存镜像的地方

  • 公有仓库(Public)
  • 私有仓库(Private)

仓库注册服务器(Registry)

  • 存放仓库的地方
  • 包含多个仓库
  • 每个仓库集中存放某一类镜像,并且使用不同的标签(tag)区分

目前最大的公共仓库是 docker Hub,存放了数量庞大的镜像供用户下载使用

安装 Docker

支持在主流的操作系统平台上使用

  • Windows 系统
  • Linux 系统
  • Mac 系统

默认自带 Docker 包的最新系统官方软件源有

  • RHEL
  • CentOS
  • Ubuntu

CentOS 系统安装 Docker 有两种方式

  • 使用 CURL 获得 Docker 的安装脚本
  • 使用 YUM 仓库

目前 Docker 只支持 64 位系统

设置好阿里巴巴YUM仓库

复制代码
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum clean all

关闭防火墙、内核机制并永久关闭

复制代码
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/sysconfig/selinux
//修改配置
SELINUX=disabled

使用阿里巴巴开源镜像站

https://mirrors.aliyun.com/docker-ce/

复制代码
# step 1: 安装必要的一些系统工具
[root@localhost ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
[root@localhost ~]# sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
[root@localhost ~]# sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
[root@localhost ~]# sudo yum makecache fast
[root@localhost ~]# sudo yum -y install docker-ce

也可以将国内的镜像站改为阿里镜像加速器,Docker镜像加速地址可以在阿里上申请

https://cr.console.aliyun.com/cn-hangzhou/mirrors

进入 docker 目录

复制代码
[root@localhost ~]# cd /etc/docker

优化镜像

添加配置文件

复制代码
[root@localhost docker]# vim daemon.json
//添加优化配置
{
"exec-opts":["native.cgroupdriver=systemd"],
//使用代理可以访问到国外的
"registry-mirrors":["https://cf-workers-docker-io-8jv.pages.dev"],
"insecure-registries":["192.168.10.106"]
}

启动 docker 镜像并设置永久启动

复制代码
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

查看 docker 版本

复制代码
[root@localhost docker]# docker version
Client: Docker Engine - Community
    Version:                26.1.4
    API version:            1.45
......省略部分内容

Server: Docker Engine - Community
    Engine:
     Version:            26.1.4
     API version:        1.45(minimum version 1.24)
......省略部分内容

退出到家目录并修改 conf 配置文件

复制代码
[root@localhost docker]# cd
[root@localhost ~]# vim /etc/sysctl.conf
//设置支持ipv4和ipv6网络
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1

让策略立即生效同时检查语句是否有错

复制代码
[root@localhost ~]# sysctl -p

Docker 镜像操作

搜索镜像

复制代码
[root@localhost ~]# docker search lamp

获取镜像

可以选择星级较高的镜像

复制代码
[root@localhost ~]# docker pull mattrayner/lamp

查看镜像信息

复制代码
[root@localhost ~]# docker images

修改镜像标签(老名字+新名字)

复制代码
[root@localhost ~]# docker tag mattrayner/lamp lamp:lamp

修改标签时可以只设置新的镜像名称,不要标签TAG,此时的标签会使用默认的latest当做标签名

再次查看镜像信息

复制代码
[root@localhost ~]# docker images

上传镜像

复制代码
[root@localhost ~]# docker tag mattrayner/lamp XiaoAXuanyx-CSDN/lamp:lamp

[root@localhost ~]# docker login

输入账号密码后即可登录成功

复制代码
[root@localhost ~]# docker push XiaoAXuanyx-CSDN/lamp:lamp

[root@localhost ~]# docker search XiaoAXuanyx-CSDN

注册 Docker 账号,登录网址

https://hub.docker.com/

删除镜像

用镜像名删除

复制代码
[root@localhost ~]# docker rmi lamp:lamp

如果标签名为latest,删除时只用镜像名即刻

用 ID 删除

复制代码
[root@localhost ~]# docker rmi c15

用ID删除时,不能有同ID的镜像,比如修改镜像标签而生成的新的镜像,该镜像的ID和原始镜像是相同的,此时不能用ID删除

保存镜像

复制代码
[root@localhost ~]# docker save -o lamp mattrayner/lamp

载入镜像

复制代码
[root@localhost ~]# docker load < lamp

Docker 容器操作

创建容器

复制代码
[root@localhost ~]# docker create -it mattrayner/lamp
  • -i:让容器的输入保持打开状态
  • -t:让 Docker 分配一个伪终端
  • -d:以守护进程得到方式运行该容器

此命令只是把容器创建了出来,并没有运行

查看容器状态

复制代码
[root@localhost ~]# docker ps -a

启动容器

复制代码
[root@localhost ~]# docker start 5a
  • 每个容器的名字都不一样,这里的5a是某一个容器名字

启动容器时持续启动容器

复制代码
[root@localhost ~]# docker run centos:7 /usr/bin/bash -c "while true;do echo aaa;done"
或
[root@localhost ~]# docker run -dit centos:7 /bin/bash

终止容器

复制代码
[root@localhost ~]# docker stop b18

进入容器

复制代码
[root@localhost ~]# docker exec -it 03f /bin/bash

退出

复制代码
[root@03f062851c52 /]# exit

导出容器

复制代码
[root@localhost ~]# docker export 03f >centos7

导入容器生成镜像

复制代码
[root@localhost ~]# docker import centos7 centos7:test

导出的容器再导入之后就成镜像了

查看状态

复制代码
[root@localhost ~]# docker images

小阿轩yx-Docker 初识

相关推荐
MC_J1 分钟前
Linux 6.1 移植RTL8723du驱动
linux·arm
姓王名礼7 分钟前
这是一个完整的全栈交付包,包含Vue3 前端交互界面(集成数字人视频流、ECharts 图表、语音对话)和Docker Compose 一键部署脚本。
前端·docker·echarts
彭泽布衣12 分钟前
Linux如何指定源端口打流
linux·运维·网络
晨晖226 分钟前
Linux命令3
linux·运维·服务器
eggwyw40 分钟前
Redis 设置密码(配置文件、docker容器、命令行3种场景)
数据库·redis·docker
素雨迁喜44 分钟前
Linux平台下git工具的使用
linux·运维·git
十年编程老舅1 小时前
Linux DMA 技术深度拆解
linux·网络·linux内核·dma·c/c++·内存访问
jianqiang.xue1 小时前
ESP32-S3 运行 Linux 全指南:从 RISC-V 模拟器移植到 8 秒快速启动
linux·stm32·单片机·mongodb·risc-v·esp32s3
bing_feilong1 小时前
Ubuntu Tips
linux·运维
~光~~1 小时前
【嵌入式linux学习】0_3位运算整理
linux·学习