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

Docker介绍,Docker安装

docker镜像仓库官网

一、Docker的基本概念

1.Docker的三大核心组件

   docker 镜像 --------docker images

   docker 仓库---------docker  registeries

   docker 容器---------docker  containers

2.Docker 镜像

    Docker镜像是运行docker容器时的只读模板,每一个镜像由一系列的层组成,Docker 使用  UnionFS 来将这些层联合到单独的镜像中。UnionFS  允许独立文件系统中的文件和文件夹(称之为分支)被透明覆盖,形成一个单独连贯的文件系统。正因为有了这些层的存在,Docker  是如此的轻量。当你改变了一个 Docker  镜像,比如升级到某个程序到新的版本,一个新的层会被创建。因此,不用替换整个原先的镜像或者重新建立(在使用虚拟机的时候你可能会这么做),只是一个新的层被添加或升级了。现在你不用重新发布整个镜像,只需要升级,层使得分发 Docker 镜像变得简单和快速。     

在 Docker 的术语里,一个只读层被称为镜像,一个镜像是永久不会变的。
    由于 Docker 使用一个统一文件系统,Docker 进程认为整个文件系统是以读写方式挂载的。 但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像不可写,所以镜像是无状态的。
每一个镜像都可能依赖于由一个或多个下层的组成的另一个镜像。下层那个镜像是上层镜像的父镜像。

镜像名字:
    registry/repo:tag
    daocloud.io/library/centos:7

基础镜像:
一个没有任何父镜像的镜像,谓之基础镜像。

镜像ID:
所有镜像都是通过一个 64 位十六进制字符串 (内部是一个 256 bit 的值)来标识的。 为简化使用,前 12 个字符可以组成一个短ID,可以在命令行中使用。短ID还是有一定的碰撞机率,所以服务器总是返回长ID。

3、Docker 仓库

  用来保存镜像,可以理解为代码控制中的代码仓库,Docker仓库分为公有和私有的概念:

公有的 Docker  仓库名字是 Docker Hub。Docker Hub  提供了庞大的镜像集合供使用。这些镜像可以是自己创建,或者在别人的镜像基础上创建。Docker 仓库是 Docker 的分发部分。 

4.Docker容器

   Docker容器和文件架很类似,一个Docker容器包含了某个应用运行所需的环境,每一个Docker容器都是由Docker镜像创建的,Docker容器可以运行,开始,停止,移动或者删除,每一个Docker容器都是独立安全的应用平台

二、Docker安装

1、关闭防火墙和selinux

[root@localhost ~]# systemctl stop firewalld && setenforce 0

2、配置aliyun的Docker源

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 git
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

3、安装docker

 3.1查看docker版本

[root@localhost ~]# yum list docker-ce --showduplicates
已加载插件:fastestmirror
Repository docker-ce-stable is listed more than once in the configuration
Loading mirror speeds from cached hostfile
可安装的软件包
docker-ce.x86_64                                   17.03.0.ce-1.el7.centos                                   docker-ce-stable
docker-ce.x86_64                                   17.03.1.ce-1.el7.centos                                   docker-ce-stable
docker-ce.x86_64                                   17.03.2.ce-1.el7.centos                                   docker-ce-stable
docker-ce.x86_64                                   17.03.3.ce-1.el7                                          docker-ce-stable
docker-ce.x86_64                                   17.06.0.ce-1.el7.centos                                   docker-ce-stable
docker-ce.x86_64                                   17.06.1.ce-1.el7.centos                                   docker-ce-stable

3.2 安装最新版的docker

[root@localhost ~]# yum install docker-ce -y

安装较旧版本(比如Docker 17.03.2) :需要指定完整的rpm包的包名,并且加上--setopt=obsoletes=0 参数:

        yum install -y --setopt=obsoletes=0 \
        docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
        docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

4、启动Docker服务

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

5、查看docker版本

docker -v

docker version

[root@localhost ~]# docker -v
Docker version 24.0.7, build afdd53b

6.查看docker运行状态

[root@localhost ~]# docker info
Client: Docker Engine - CommunityVersion:    24.0.7Context:    defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version:  v0.11.2Path:     /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version:  v2.21.0Path:     /usr/libexec/docker/cli-plugins/docker-composeServer:Containers: 0Running: 0Paused: 0Stopped: 0Images: 0Server Version: 24.0.7Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueUsing metacopy: falseNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: cgroupfsCgroup Version: 1Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: io.containerd.runc.v2 runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 3dd1e886e55dd695541fdcd67420c2888645a495runc version: v1.1.10-0-g18a0cb0init version: de40ad0Security Options:seccompProfile: builtinKernel Version: 3.10.0-1160.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 4Total Memory: 3.682GiBName: localhost.localdomainID: 67b53910-1166-48f6-9bfd-68fb06c60cf7Docker Root Dir: /var/lib/dockerDebug Mode: falseExperimental: falseInsecure Registries:127.0.0.0/8Live Restore Enabled: false

7、生产docker的环境配置

[root@localhost ~]# sudo mkdir -p /etc/docker
[root@localhost ~]# sudo tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://pilvpemn.mirror.aliyuncs.com"],
>   "exec-opts": ["native.cgroupdriver=systemd"],
>   "log-driver": "json-file",
>   "log-opts": {
>     "max-size": "100m"
>   },
>   "storage-driver": "overlay2"
> }
> EOF
{"registry-mirrors": ["https://pilvpemn.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
[root@localhost ~]# sudo systemctl daemon-reload
[root@localhost ~]# sudo systemctl restart docker

一定注意编码问题,出现错误---查看命令:journalctl -amu docker 即可发现错误

!扩展:修改docker的数据目录

1.查看原数据目录

2,修改目录 

[root@localhost ~]# vim  /usr/lib/systemd/system/docker.service

[root@localhost ~]# mkdir /opt/data -p
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker info | grep  Root Docker Root Dir: /opt/data

http://www.lryc.cn/news/263016.html

相关文章:

  • CLIP 对比学习 源码理解快速学习
  • 6.鸿蒙app_hap_DevEco如何真机调试模式_app安装在手机中
  • 【JVM从入门到实战】(八)垃圾回收(1)
  • LeeCode前端算法基础100题(12)-删除有序数组中的重复项
  • MATLAB图解傅里叶变换(初学者也可以理解)
  • uni-app 用于开发H5项目展示饼图,使用ucharts 饼图示例
  • 回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)
  • JDK bug:ciObjectFactory::create_new_metadata
  • Flink系列之:Over聚合
  • Java开发工具积累(符合阿里巴巴手册规范)
  • SiLM5350MDBCA-DG车规级隔离驱动芯片,我们能为汽车智能提供什么?
  • 【开题报告】基于SpringBoot的企业财务管理系统的设计与实现
  • 【C盘清理】Jetbrains全家桶(PyCharm、Clion……)更改 IDE 特定文件(配置、缓存、插件、日志等)存储位置
  • nginx部署vue项目
  • Relocations for this machine are not implemented,IDA版本过低导致生成汇编代码失败
  • [ CTF ]【天格】战队WriteUp-第七届“强网杯”全国安全挑战赛
  • Android13音频录制适配
  • 【Python】—— 如果使用matplotlib做数据可视化
  • 【MyBatis-Plus】多数据源分页配置(低版本暂时就支持一种(可选),高版本多支持)
  • Linux 特殊符号
  • TDengine 签约中船九院,助力航运业智能化转型升级
  • upload-labs笔记
  • Android Studio好用的插件推荐
  • 第三十九章 其他特殊主题 - 映射 IRIS ID 以供导出
  • 文件操作(下)
  • 面试必问-vue3中ref与这个reactive的区别
  • 网络(九)三层路由、DHCP以及VRRP协议介绍
  • 深度学习 Day19——P8YOLOv5-C3模块实现
  • 轻量封装WebGPU渲染系统示例<51>- 视差贴图(Parallax Map)(源码)
  • YOLOv8改进 | 2023主干篇 | 华为最新VanillaNet主干替换Backbone实现大幅度长点