小阿轩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 初识

相关推荐
龙鸣丿30 分钟前
Linux基础学习笔记
linux·笔记·学习
耶啵奶膘2 小时前
uniapp-是否删除
linux·前端·uni-app
2401_850410833 小时前
文件系统和日志管理
linux·运维·服务器
XMYX-03 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
南猿北者5 小时前
docker容器
docker·容器
二十雨辰6 小时前
[linux]docker基础
linux·运维·docker
知孤云出岫6 小时前
云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO
云计算·腾讯云
time never ceases6 小时前
使用docker方式进行Oracle数据库的物理迁移(helowin/oracle_11g)
数据库·docker·oracle
饮浊酒6 小时前
Linux操作系统 ------(3.文本编译器Vim)
linux·vim
lihuhelihu6 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算