当前位置: 首页 > news >正文

容器技术技术入门与 Docker 环境部署

目录

一:Docker概述

1、 Docker的优势:

(1)环境一致性

(2)隔离性

(3)资源高效

(4)便捷性和可扩展性

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

3、Docker的应用场景

4、Docker核心

(1)镜像(Image)

(2)容器(Container)

(3)仓库(Repository)

二:Docker安装

1:本安装方式使用阿里的软件仓库

(1)关闭系统防火墙

(2)下载Docker的repo文件

(3)替换仓库地址

(4)更新索引文件并安装Docker

(5)添加国内镜像站

(6)开启Docker服务

(7)优化内核参数

三:Docker镜像操作

1、Docker 镜像操作列表

2、Docker镜像操作案例

(1)获取镜像

(2)查看镜像

(3)查看镜像的详细信息

(4)修改镜像标签

(5)删除镜像

1.用镜像名删除

2.用ID 删除

(6)存出镜像和载入镜像

1.导出

2.删除

3.导入

四、Docker容器操作

1、Docker 容器操作列表

2、Docker 容器操作案例 

(1)容器的创建与启动

1.创建容器

2.查看所有的容器

3.容器的运行

4.利用容器执行命令(命令执行完毕后容器会退出)

5.在启动容器时持续在后台运行

(2)容器的终止

(3)进入容器

(4)容器导出

(5)容器导入生成镜像

(6)容器删除


一:Docker概述

Docker是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,然后这个容器可以在任何支持Docker的机器上运行,无论是物理机、虚拟机、云平台还是数据中心。

1、 Docker的优势:

(1)环境一致性

Docker容器在任何支持Docker的环境中运行时表现一致,解决了“在我的机器上运行正常,但在其他机器上就不行”的问题。

(2)隔离性

容器之间相互隔离,一个容器的故障或异常不会影响到其他容器的运行,提高了应用的稳定性和安全性。

(3)资源高效

与传统虚拟机相比,Docker容器不需要额外的操作系统,因此资源消耗更少,启动更快。

(4)便捷性和可扩展性

容器的启动速度非常快,通常只需要几秒钟,可快速创建和销毁容器,方便进行应用的快速部署和弹性扩展。

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

特性

Docker容器

虚拟机

启动速度

秒级

分钟级

计算能力损耗

几乎无

损耗50%左右

性能

接近原生

弱于

系统支持量

上千个

几十个

隔离性

资源限制

完全隔离

3、Docker的应用场景

(1)开发环境管理

(2)持续集成和持续部署(CI/CD)

(3)微服务架构

(4)云计算

4、Docker核心

(1)镜像(Image)

类似于虚拟机的快照,但是所占资源远远小于快照,可以理解为一个面向Docker容器引擎的只读模板。可以用户自己创建和更新现有的镜像,也可以从网上下载已创建好的镜像。

(2)容器(Container)

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

(3)仓库(Repository)

Docker仓库是用来集中保存镜像的地方,创建自己的镜像后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。其他机器使用时可以从仓库获取。

二:Docker安装

CentOS 系统安装Docker有两种放式:

(1)使用 CURL 获得 Docker 的安装脚本

(2)使用 YUM 仓库安装。

注意:目前Docker只能支持64位系统

1:本安装方式使用阿里的软件仓库

(1)关闭系统防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/=enforcing/=disabled/' /etc/selinux/config

(2)下载Docker的repo文件

​curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3)替换仓库地址

sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo
sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/docker-ce.repo

(4)更新索引文件并安装Docker

dnf clean all
dnf makecache
dnf -y install docker-ce

(5)添加国内镜像站

​vim /etc/docker/daemon.json
{
"exec-opts": ["netive.cgroupdriver=systemd"],"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com"]
}

(工信部网络政策调整,docker.io、gcr.io等国际镜像站不能访问)

(6)开启Docker服务

systemctl daemon-reload
systemctl restart docker
systemctl enable docker
docker version

(7)优化内核参数

vim /etc/sysctl.conf
net.ipv4.ip_forward=1	#12
net.bridge.bridge-nf-call-iptables=1
net.bridge.brifge-nf-call-ip6tables=1sysctl -p

三:Docker镜像操作

1、Docker 镜像操作列表

命令

语法

参数/选项

说明

示例

拉取镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

-a:拉取所有标签的镜像

--disable-content-trust:禁用镜像签名验证

从镜像仓库拉取镜像到本地

docker pull nginx:1.24.0

列出镜像

docker images [OPTIONS] [REPOSITORY[:TAG]]

-a:显示所有镜像(包括中间层)

-q:仅显示镜像ID

--digests:显示摘要信息

列出本地所有镜像的仓库名、标签、ID、创建时间及大小

docker images -a

查看镜像详情

docker inspect [OPTIONS] IMAGE

-f:自定义输出格式

--size(仅容器)

查看镜像的底层详细信息(JSON格式)

docker inspect c15

修改镜像标签

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

为镜像添加新标签(不创建新镜像)

docker tag nginx:1.24.0 nginx:v1

删除镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]

-f:强制删除

--no-prune:保留父镜像层

删除本地镜像

docker rmi nginx:v1

docker rmi c15

导出镜像

docker save -o FILE IMAGE[:TAG]

将镜像保存为tar文件

docker save -o nginx.tar nginx:1.24.0

导入镜像

docker load < FILE

从tar文件加载镜像

docker load < nginx.tar

2、Docker镜像操作案例

运行 Docker 容器前需要本地存在对应的镜像。如果不存在本地镜像,Docker 就会尝试从默认镜像仓库下载。镜像仓库是由 Docker 官方维护的一个公共仓库,可以满足用户的绝大部分需求。用户也可以通过配置来使用自定义的镜像仓库。

(1)获取镜像

docker pull nginx:1.24.0

(2)查看镜像

docker images

(3)查看镜像的详细信息

docker inspect 6c0218

(4)修改镜像标签

docker tag nginx:1.24.0 nginx:v1
docker images

(5)删除镜像

删除镜像有两种方式

1.用镜像名删除
docker rmi nginx:v1
2.用ID 删除
docker rmi 6c0218

(6)存出镜像和载入镜像

1.导出
docker save -o nginx nginx:1.24.0
ls
2.删除
docker rmi nginx:1.24.0
3.导入
docker load<nginx
docker images

四、Docker容器操作

1、Docker 容器操作列表

命令

语法

参数/选项

说明

示例

创建容器

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

-it:交互式终端

-p:端口映射

--name:容器命名

创建容器但不启动

docker create -it --name my_centos centos:7

启动容器

docker start [OPTIONS] CONTAINER

-a:附加到容器输出

-i:保持输入交互

启动已创建的容器

docker start my_centos

创建并运行容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d:后台运行

-it:交互式终端

-p:端口映射

-v:挂载数据卷

直接创建并启动容器

docker run -d -p 8080:80 nginx

docker run -it centos:7 /bin/bash

列出容器

docker ps [OPTIONS]

-a:显示所有容器

-q:仅显示ID

-s:显示容器大小

查看容器状态和基本信息

docker ps -a

停止容器

docker stop [OPTIONS] CONTAINER

-t:设置等待时间(默认10秒)

优雅停止容器

docker stop -t 20 my_nginx

进入容器

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

-it:交互式终端

-u:指定用户

在运行中的容器内执行命令

docker exec -it my_centos /bin/bash

导出容器

docker export CONTAINER > FILE

将容器文件系统导出为tar文件

docker export my_centos > centos.tar

导入容器为镜像

docker import FILE [REPOSITORY[:TAG]]

从tar文件生成镜像

docker import centos.tar centos:test

删除容器

docker rm [OPTIONS] CONTAINER

-f:强制删除运行中的容器

-v:同时删除数据卷

删除已停止的容器

docker rm -f my_centos

2、Docker 容器操作案例 

容器是 Docker 的另一个核心概念。简单说,容器是镜像的一个运行实例,是独立运行的一个或一组应用以及它们所必需的运行环境,包括文件系统、系统类库、she11 环境等。镜像是只读模板,而容器会给这个只读模板添加一个额外的可写层。

(1)容器的创建与启动

1.创建容器
docker create -it centos:7
2.查看所有的容器
docker ps -a 
3.容器的运行
docker start 5a
docker ps 
4.利用容器执行命令(命令执行完毕后容器会退出)
docker run -d centos:7 /usr/bin/bash -c "ls /root"
5.在启动容器时持续在后台运行
docker run -d centos:7 /usr/bin/bash -c "while true;do echo nihao;done"

docker run -dit centos:7 /bin/bash

(2)容器的终止

docker stop b18

(3)进入容器

[root@localhost ~]# docker exec -it 1ca2 /bin/bash
[root@1ca2a9e95262 /]# ls
anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  tmp  var
bin                etc  lib   media  opt  root  sbin  sys  usr
[root@1ca2a9e95262 /]# exit
exit
[root@localhost ~]# 

(4)容器导出

docker export 1ca2 >centos77

(5)容器导入生成镜像

docker import centos77 centos77:aaa
docker images

(6)容器删除

docker rm 1ca2

相关文章:

  • 汽车免拆诊断案例 | 2019款保时捷卡宴插电式混合动力车空调偶尔不制冷
  • 设置vscode使用eslint
  • AS32A601与ASM1042芯片在电力系统自动化监控中的应用效能分析
  • 智绅科技丨如何选择一家好的养老机构?
  • DB面试题
  • [Nginx] 配置中的sendfile参数详解:从传统 IO 到零拷贝的性能优化
  • 服务器获取外网IP,并发送到钉钉
  • React封装框架dvajs(状态管理+异步操作+数据订阅等)
  • 【redis】客户端
  • LVS负载均衡群集:Nginx+Tomcat负载均衡群集
  • 4-STM32F103的串口中断与空闲中断接收数据
  • 装配基本操作与标准配合关系-装配体设计技能(1)
  • 【案例拆解】米客方德 SD NAND 在车联网中(有方模块)的应用:破解传统 TF 卡振动脱落与寿命短板
  • 地标“金”字招牌再升级:赤水金钗石斛携手世酒中菜开启新纪元
  • AI Agent开发与安全
  • 【网络安全】ios逆向一般整理
  • Python 中设置布尔值参数为 True 来启用验证
  • 全球首款5G-A人形机器人亮相,通信与AI融合进入新阶段
  • ACR窃密木马改头换面,更名重构后规避能力升级
  • RPGMZ游戏引擎 如何手动控制文字显示速度
  • 阿里云网站建设基本流程/线上网络平台推广
  • 江宁网站建设价位/蚁坊软件舆情监测系统
  • 建设班级网站/最佳磁力搜索天堂
  • 浙江网站建设网/seo常用工具包括
  • 临汾市建设局网站/2345浏览器下载
  • 国外网站怎么做推广/外贸软件