Docker基本概念与命令

网友投稿 215 2022-10-22

Docker基本概念与命令

​一、Docker的概念

1、云计算三层架构

服务

说明

应用

IAAS

基础设施及服务

硬件(服务器、网络设置、防火墙等)虚拟化

网络虚拟化(大二层)

例:openstack

PAAS

平台及服务

环境

例:数据库、 docker 、kubernetes

SAAS

应用及服务

环境

例:数据库、 docker 、kubernetes

而Docker就是PAAS中的技术。

​2.Docker是什么

​Docker是一种轻量级的“虚拟机”,是一个开源的应用容器引擎。容器是完全使用沙箱机制,相互之间不会有任何接口

轻量级表示它体积小,灵活而说它是虚拟机,又不是真正的虚拟机,因为它里面没有系统开源表示它是免费的

3.Docker和虚拟机的区别

对比参数

虚拟机

容器

启动时间

慢 (分钟级别)

快速(毫秒级别)

占用空间

大(整个系统的大小,几G)

小(内核大小,几M)

系统隔离

逻辑隔离

依赖于内核(内核共享)

安全性(因为隔离性)

低(使用原系统内核)

4、使用场景

对应用的打包与部署自动化创建轻量、私密的PAAS环境实现自动化测试和持续的集成/部署部署与扩展webapp、数据库和后台服务

5、Docker的核心概念(重点)

镜像(镜像的压缩包)容器(实例,通过镜像创建)仓库(存放镜像的地方)

公有仓库:Docker官方仓库私有仓库:个人化、私有化的仓库

​小结:Docker是容器管理工具,容器由镜像创建而来,镜像从仓库中获取而来,仓库分为公有、私有。

​6、Centos中的安装方法

​方法一:

使用CURL获得Docker的安装脚本(get-docker.sh)进行安装

方法二:

使用yum仓库安装,我们使用第二种方法为例

二、Docker相关命令

1、安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2#yum-utils提供了yum-config-manager#device mapper存储驱动程序需要device-mapper-persistent-data和lvm2#Device Mapper 是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。

2、设置阿里云镜像源

3、安装Docker-CE

yum install -y docker-cesystemctl stop firewalld.servicesystemctl disable firewalld.servicesetenforce 0vim /etc/selinux/configSELINUX=disabledsystemctl start docker.service systemctl enable docker.service

​配置阿里云镜像加速,不然下载速度很慢​

​加速地址从自己的阿里云上获取​​阿里云官网:​​​daemon-reload systemctl restart docker

网络优化

4、基础命令

查看docker版本信息

docker version

(1)镜像的操作

查找指定镜像

docker search 服务名例如:docker search nginx

下载镜像

docker pull 服务名例如:docker pull nginx

查看镜像信息

docker imagesdocker inspect 镜像的ID例如docker imagesdocker inspect 605c77e624dd

添加新标签(打标签)

docker tag 仓库名:原镜像名 仓库名:新镜像名例如:docker tag nginx:latest nginx:testdocker imagesdocker images | grep nginx

删除镜像

​指定镜像ID删除的时候,要求不能有该镜像不能有标签

docker rmi 镜像的IDdocker rmi 仓库名:镜像名例如:docker rmi 605c77e624dddocker imagesdocker rmi nginx:testdocker images

将镜像存储到本机上,命名为nginx_latest

docker save -o 存放镜像的位置 仓库名:镜像名例如:docker save -o /opt/nginx_latest nginx:latest

载入镜像

方法一:docker load < 本地导出的镜像名方法二:docker --input 本地导出的镜像名例如:docker load < nginx_latestdocker load --input nginx_latest

​方法一:​

​方法二:

上传镜像

将本地的镜像上传到公有的镜像仓库,要先登陆到镜像仓库上传镜像前要修改标签,标签前面要加上Docker官网的账号名

标签格式: Docker官网的账号名/仓库名:镜像名

不过一般不会上传到公有仓库中,公司内部都使用私有仓库私有云到后面再说

docker push [OPTIONS] NAME[:TAG]例如:按照下面的流程就可以上传到公有云,有兴趣的可以上传#改标签docker tag 仓库名:镜像名 用户名/仓库名:镜像名#登录docker loginUsername: #用户名Password: #蜜玛#上传docker push 用户名/仓库名:镜像名

(2)容器的操作

查看容器运行状态

容器的STATUS状态

up是正在运行的Exited (0)是正常停止的容器Exited (非0)异常停止的容器

docker ps #查看运行中的容器docker ps -a #加-a 列出所有的容器,包括未运行的容器

创建容器

docker create [选项] 镜像运行的程序-i:让容器的标准输入保持打开-t:让Docker分配一个伪终端例;docker create -it nginx:latest /bin/bash

启动、停止、重启容器

docker start 容器ID:启动一个或多个已经被停止的容器docker stop 容器ID:停止一个运行中的容器docker restart 容器ID:重启容器例:docker start d582b087bbe6docker ps -adocker stop d582b087bbe6docker ps -adocker restart d582b087bbe6

运行容器

run和start的作用有些类似,准确来说run相当于create+start一般第一次可以使用run,后面维护还是使用start/stop/restart

docker run [选项] 镜像 [命令] [变量]-d: 后台运行容器,并返回容器ID;-i: 以交互模式运行容器,通常与 -t 同时使用-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用-c 命令表示后面的参数将会作为字符串读入作为执行的命令-v: 绑定一个卷-P: 随机端口映射,容器内部端口随机映射到主机的端口-p: 指定端口映射,格式为:主机(宿主)端口:容器端口--name="名称": 为容器指定一个名称--link name:alias 添加链接到另一个容器,格式“--link容器名:别名”例如:docker run nginxdocker run -d nginxdocker run -d nginx /bin/bash -c "ls"

进入、退出容器

进入的容器状态一定要是运行状态

docker exec [选项] 容器 命令例:docker exec -it cb20d779ce38 /bin/bashdocker exec -it 1462cb6ffb04 /bin/bashexit//退出容器

容器导入、导出

#容器导出docker export 容器ID > 备份文件名#容器导入(会生成镜像,而不会创建容器)cat 备份文件名 | docker import - 仓库名:镜像名例如:docker export 1462cb6ffb04 > nginx_updocker export cb20d779ce38 > nginx_exitedcat nginx_up | docker import - nginx:web

删除容器

docker rm 容器ID例如:docker rm 4d8dcf51a4ef//批量删除容器docker ps -a | awk '{print "docker rm "$1}' | bash

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解析SpringBoot 搭建基于 MinIO 的高性能存储服务的问题
下一篇:Docker 安全及日志管理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~