Docker安装教程使用

一、Docker简介
  1. 什么是docker:
    docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上, 也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口
  2. 什么是容器:一个容器就相当于一个虚拟机
  3. 为什么使用docker
    1.提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境
    2.提供弹性的云服务。因为 Docker容器可以随开随关,很适合动态扩容和缩容
    3.组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构
  4. docker和虚拟机区别
    隔离级别: docker进程级(隔离策略-CGroups) 虚拟机内核级(隔离策略-Hypervisor)
    启动时间:docker容器-秒级, 虚拟机-分钟级
    群集规模:docker容器-上万 虚拟机-上百
    硬盘储存: docker容器-MB 虚拟机-GB
    系统资源利用率:docker容器0-5% 虚拟机5-15%
    高可用策略: 虚拟机-备份、容灾、迁移 docker-弹性、动态、负载
二、Docker安装
  1. 官网教程方法(一般默认安装到centos7系统上)
    centos7官网教程安装方法: https://docs.docker.com/engine/install/centos/
    ubanan官网教程安装方法:https://docs.docker.com/engine/install/ubuntu/

    查看内核版本(前提是必须是大于等于3.8):

uname -r
  1. 如果有之前安装过的先卸载干净
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
  1. 先设置一个yaml远程仓库
 sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装docker引擎(有y按y)
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动docker
sudo systemctl start docker
  1. 试用docker命令(从远程仓库拉取并运行,先查看本地有没有hello-world,如果没有去远程仓库拉取并运行)
sudo docker run hello-world

或者使用(查看版本信息):

docker version 

在这里插入图片描述
返回上图内容代表安装成功

三、docker加速

Tips:因为远程仓库在国外-安装包都在远程仓库,安装镜像比较慢,使用国内的镜像源替换
阿里云镜像地址及配置方法:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

  1. 在/etc/docker目录下新建daemon.json文件,加入以下内容,保存
{"registry-mirrors": ["https://c8ldi73s.mirror.aliyuncs.com/", "https://registry.docker-cn.com", "http://fl36db2.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn"]}
  1. 查看:docker info 结尾有下列内容代表镜像替换成功
    在这里插入图片描述
  2. 重启服务使其生效
systemctl daemon-reload
systemctl restart docker
四、docker常用命令
  1. 针对docker启动或重启等
    docker --version 或 docker info 查看docker版本
    systemctl start docker 启动docker
    systemctl status docker 查看docker运行状态
    systemctl stop docker 停止docker
    systemctl restart docker 重启docker
    systemctl enable docker 开机启动

  2. 针对docker镜像命令
    docker image --help 或者 docker image rm --help 查看image帮助文档
    docker images 查看镜像 或者 docker image ls docker images -a 查看更多的镜像
    docker image rm 镜像id 或者 docker rmi mysql:5.7 删除未运行的镜像(可以同时删多个)
    docker image rm -f 镜像id 或者 docker rmi -f mysql:5.7 强制删除正在运行镜像(可以同时删多个)

    docker search redis 搜索镜像(一般使用OFFICIAL 下面带OK官网安装包-安全和稳定性比较好)
    docker pull mysql 从docker hub仓库下载mysql镜像,不加tag: mysql:latest是下载的是最新版
    docker pull mysql:5.7 指定镜像版本下载 ,
    一般会拉取镜像带alpine结尾的版本 docker pull nginx:alpine版本 容量会更小
    docker inspect nginx:alpine docker inspect 镜像名称:查看镜像详细信息(包括版本,创建时间、储存地址等)
    docker push mysql 推送一个镜像(本地仓库或者docker仓库)
    docker tag 更改镜像
    docker history python:alpine 查看镜像历史记录

  3. 针对docker容器
    docker run 简写 或者 docker container run 全写
    docker run --help
    docker run centos 启动一个安装包,先查看本地有没有,如果本地没有,会自动取远程仓库拉取,如果不指定版本,默认是 centos:latest 没有-d只会启动1次
    ls 可查看当前目录
    docker ps 或者 docker container ps 查看正在运行的容器(容器id、镜像名称、路径、启动时长、启动状态Up、 PORTS-端口映射、容器名称)
    容器名称如果不指定会随机生成
    docker run --name centos_test centos:7 --name 指定容器的名称 容器名称不能和已有的容器名称重复(还想使用此名称必须把之前的容器名称删除)
    docker ps -a 查看所有容器
    docker pause 容器ID或者容器名称 暂停容器 docker unpause 容器ID或者容器名称 恢复暂停容器
    docker stop 容器id或容器名称 停止一个或多个容器
    docker start 容器id或容器名称 启动一个或多个容器
    docker restart 容器ID或者容器名称 重启一个或多个容器
    docker rm 容器ID或者容器名称 删除已停止的容器
    docker rm -f 容器ID或者容器名称 强行删除正在运行的容器
    docker inspect 容器ID或容器名称 查看容器内部细节
    docker top 容器ID或容器名称 查看容器内运行的进程
    docker logs 容器ID或容器名称 查看容器日志
    docker stats 容器ID或容器名称 查看容器的资源利用率
    docker cp 需要拷贝的文件或目录 容器名称:容器目录 拷贝文件到容器指定目录下

#Tips:还有很多命令和使用,例如数据卷、网络、和虚拟机进行切换、自己创建一个dockerfile及使用规范,docker commpose、docker_swarm群集命令等待后续补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691930.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ 入门2

目录 五. 函数重载 1、参数类型不同 2、参数个数不同 3、参数类型顺序不同 C支持函数重载的原理--名字修饰(name Mangling) 为什么C支持函数重载,而C语言不支持函数重载呢? 六. 引用 6.1 概念 6.2 引用特性 6.3 常引用 6.4 使用场景 …

Ps各种修改文字超实用方法

介绍 在日常生活中,难免会遇到进行文字修改的ps场景,此时就需要用到比较专业的ps进行文字修改,博主特意整合了多种情况下的文字p图方法进行记录,但是不包含全部情况,只记录日常中常见的情况,也可以解决大部分场景了 原图有可用文字素材 在p图时,我们可以先观察我们要p的图中…

C++:虚函数表Hook

Hook 在计算机编程中,"Hook"(钩子)是一种技术,用于拦截并修改特定事件或函数的执行流程。它允许程序员在特定的代码点插入自定义的代码,以实现对程序行为的修改、监视或增强。 虚函数表Hook 虚函数表&#…

哈夫曼编码(上)

文章目录 问题引入哈夫曼编码的编写总述步骤一步骤二步骤三步骤四 实现代码如下 问题引入 哈夫曼编码通常用于通信领域,是对较长信息进行压缩,然后发送到指定的位置,是为了节省发送信息占用的空间。 通常来说,如果信息中字符的重…

如何自定义Linux命令

说明:本文介绍如何将自己常用的命令设置为自定义的命令,以下操作在阿里云服务器CentOS上进行。 修改配置文件 修改配置文件前,先敲下面的命令查看当前系统配置的shell版本 echo $SHELL或者 echo $0区别在于,$SHELL查看的是系统…

合并连个有序链表(递归)

21. 合并两个有序链表 - 力扣(LeetCode) 2.讲解算法原理 2.1重复子问题 2.2只关心其中的一个子问题是如何解决的 2.3细节,递归出口 3.小总结 (循环(迭代)VS 递归)(递归VS深搜&…

【数字IC设计】芯片设计中的RDC

RDC问题定义 在芯片设计中,RDC是reset domain crossing 的缩写,类似于CDC(clock domain crossing),由于现在SOC芯片是有很多ECUs组成,为了使整个系统能够快速从复位中恢复, 用户希望SOC里面每个ECU模块都可以有自己独立的异步复位信号,这样可以在出问题的时候只复位有错…

我研究了4年的小行星,在交论文的前一天......炸了!

绞尽脑汁地想选题,跟导师约谈,各种托关系找受访者,一次一次地试验,只为得到理想的数据,无数个挑灯夜读的夜晚,反反复复地Proof Read… 终于,你敲完了Conclusion的最后一个字… 看着word里显示的…

机器学习第37周周报 GGNN

文章目录 week37 GGNN摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 数据处理部分3.2 门控图神经网络3.3 掩码操作 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 传感器设置策略4.3.2 数据集4.3.3 实验设置4.3.4 模型参数设置4.3.5 实验结果 5. 结论 …

GDPU unity游戏开发 角色控制器与射线检测

在你的生活中,你一直扮演着你的角色,别被谁控制了。 小试 1. 创建一个角色控制器,通过键盘控制角色控制器的移动,角色控制器与家具发生碰撞后,通过Debug语句打印出被碰撞物体的信息(搜索OnControllerColliderHit的使用…

十个最适合论文写作的GPTs及其应用

文章目录 一、GPTs让一切皆有可能二、最适合论文写作的GPTs及其应用1、[Paper Search Engine](https://chat.openai.com/g/g-9v5gHG9Bo)2、[Academic Paper Specialist(学术论文撰写专家)](https://chat.openai.com/g/g-jryw3pfsH)3、[Paper Connect 论文…

01-win10安装Qt5

Qt5安装教程 下载Qt5官网下载(下载很慢)镜像网站下载(有些版本没有资源)迅雷下载(推荐)百度网盘下载(推荐)安装Qt5下载Qt5 官网下载(下载很慢) 【注意】:官网下载非常慢,没有镜像下载时常20+ Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这…