续篇-docker篇: 优势与安装方式 及基础指令整合

news2024/10/5 23:28:57

目录

1. 前言简介: 

1.1 docker的优势: 

1.2 docker的简易理解 

2.   指令安装 

2.1 安装yum的插件

ps: 提示没权限加上sudo即可 root用户不用

 2.2 设置yum仓库地址

ps: 设置多个镜像仓库, 不设置可能会下载变慢

ps: 如图所示

 2.3 更新缓存

 2.4 安装docker

2.5 查看docker版本

3. 启动docker-------------

3.1 开启docker服务

3.2  设置开机自启

3.3 停止docker服务

 3.4 镜像加速

 3.5 输出daemon.json

3.6 重新加载docker配置

3.7 重启docker

3.8 查看镜像配置

3.9  运行helloworld容器吧 没有会自动下载

4. docker使用的基本指令 

4.1 检查docker 镜像

 4.2 查看docker容器

4.3 docker删除容器

---> 如果有个容器还占用这个镜像,删除会报错

---> 需要先删除应用此镜像的容器然后删除 

 ---> 特别注意: 如果直接强制删除镜像 容器也不会删除 

 4.4 docker pull  拉取

 4.5 运行镜像

5. 制作镜像

5.1 下载centos镜像

 ->官网效果(如图)

-> 下载操作(如图)

5.2 将centos7镜像下载到本地

5.3  然后将这个压缩包拉到Windows系统中

--> 使用方式(如图): 

5.4 进入容器(宿主机进入)以及退出

-> 如图所示 

​编辑

5.5 docker在后台运行的标准操作包括:

5.6 删除容器: 

5.7 删除镜像

6. 容器创建后的维护

6.1 查看容器信息

6.2 查看容器日志信息

7. 创建容器挂载(数据卷)

7.1 创建一个数据卷

7.2 查看数据卷

 7.3 查看指定数据卷信息

7.4 配置jdk

   --> 创建文件Dockerfile并添加配置

7.5 使用 Dockerfile 构建镜像

---> 指令: docker build -t jdk:8 .   

 7.6 查看环境变量

8. 总结及后续传送门


1. 前言简介: 

1.1 docker的优势: 

  1. 隔离性:Docker使用容器来隔离不同的应用程序和环境,这使得应用程序之间不会互相影响,同时可以更好地管理资源。

  2. 可移植性:Docker容器可以轻松地在不同的环境中运行,从而实现真正的可移植性,无需担心因为不同的运行环境而导致应用程序出现问题。

  3. 可伸缩性:使用Docker可以很容易地扩展应用程序,根据需要增加或减少容器数量。

  4. 更快的部署:由于Docker容器的轻量级特性,部署应用程序变得非常快速和简单。

  5. 更好的资源利用率:Docker可以充分利用系统资源,在不同的容器中同时运行多个应用程序,从而实现更好的资源利用率。

  6. 更好的管理和维护:Docker的管理和维护非常简单,可以轻松地更新和升级容器中的应用程序,并且可以使用Docker的一些工具来监控和管理容器的运行情况。

1.2 docker的简易理解 

分为 容器和宿主机 也就是 容器的端口可以相同 用不同宿主机的端口进行映射

就像虚拟机一样 每个容器相互独立 互不影响, 然后一个大房子里的不同格子放这这些容器, 拿redis举例 6379端口的容器可以有多个 但是宿主机端口只能有一个 可以映射6380 等

2.   指令安装 

2.1 安装yum的插件

ps: 提示没权限加上sudo即可 root用户不用

yum install -y yum-utils

 2.2 设置yum仓库地址

ps: 设置多个镜像仓库, 不设置可能会下载变慢

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

ps: 如图所示

 2.3 更新缓存

sudo yum makecache fast

 2.4 安装docker

网络环境不好的重复下载

sudo yum install -y docker-ce docker-ce-cli containerd.io

2.5 查看docker版本

docker -v

3. 启动docker-------------

3.1 开启docker服务

systemctl start docker

3.2  设置开机自启

systemctl enable docker

3.3 停止docker服务

systemctl stop docker

 3.4 镜像加速

配置加速器来加速。修改配置文件 /etc/docker/daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

 3.5 输出daemon.json

3.6 重新加载docker配置

systemctl daemon-reload 

3.7 重启docker

systemctl restart docker

3.8 查看镜像配置

 docker info

3.9  运行helloworld容器吧 没有会自动下载

官网: https://hub.docker.com/

docker run hello-world

4. docker使用的基本指令 

4.1 检查docker 镜像

docker  images 

 4.2 查看docker容器

docker ps -a  # (简写) a==all

 

4.3 docker删除容器

docker image rm redis

---> 如果有个容器还占用这个镜像,删除会报错

---> 需要先删除应用此镜像的容器然后删除 

 

 ---> 特别注意: 如果直接强制删除镜像 容器也不会删除 

 4.4 docker pull  拉取

 

 4.5 运行镜像

docker run hello-world

5. 制作镜像

制作镜像,都会先下载一个空的centos镜像(空的系统镜像文件系统)。

官方镜像仓库地址为https://hub.docker.com

5.1 下载centos镜像

docker pull centos:7

 ->官网效果(如图)

-> 下载操作(如图)

5.2 将centos7镜像下载到本地

5.3  然后将这个压缩包拉到Windows系统中

--> 使用方式(如图): 

5.4 进入容器(宿主机进入)以及退出

docker run -it centos:7 bash
docker exec -it centos:7 bash

注意:  (指令可以组合使用) 例子:  -i   -t   -dit    -d是后台运行    it表示交互   dit没有啥意义 

-> 如图所示 

5.5 docker在后台运行的标准操作包括:

1.检查本地是否存在指定的镜像,不存在就从公有仓库下载
2.利用镜像创建并启动一个容器
3.分配一个文件系统(简版linux系统),并在只读的镜像层外面挂载一层可读写层
4.从宿主主机配置的双桥接口中桥接一个虚拟接口到容器中去
5.从地址池配置一个 ip 地址给容器
6.执行用户指定的应用程序

5.6 删除容器: 

docker stop redis
docker container rm -f redis

#不用停容器 直接删(container可以不写)
docker rm -rf redis

5.7 删除镜像

docker rmi 镜像id(三到四位就行)

6. 容器创建后的维护

6.1 查看容器信息

docker inspect redis 

6.2 查看容器日志信息

docker container logs redis 
docker container logs -f redis

7. 创建容器挂载(数据卷)

7.1 创建一个数据卷

7.2 查看数据卷

 7.3 查看指定数据卷信息

7.4 配置jdk

   --> 创建文件Dockerfile并添加配置

FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD [‘bash’]

7.5 使用 Dockerfile 构建镜像

(在Dockerfile所在目录执行docker指令)

---> 指令: docker build -t jdk:8 .   

注意  这有个点

 

 

 7.6 查看环境变量


8. 总结及后续传送门

docker 安装 使用 部署等操作(专栏)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot 中的事务超时时间

Spring Boot 中的事务超时时间 在 Spring Boot 中&#xff0c;事务管理是一个非常重要的话题。当我们在数据库中执行一些复杂的操作时&#xff0c;需要确保这些操作能够在一定的时间内完成&#xff0c;否则可能会导致数据一致性问题。为了解决这个问题&#xff0c;Spring Boot…

Linux--12--Kernel panic – not syncing: Attempted to kill init! Redhat6.2故障修复

1、Linux环境 Redhat6.2&#xff0c; Linux version 2.6.32-220.el6.i686 (mockbuildx86-003.build.bos.redhat.com) (gccversion 4,4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed Nov 9 08:02:18 EST 2011 2、故障现象 修改TCP相关文件&#xff0c;重启完Linux系统之…

ModaHub魔搭社区:Milvus的工作原理和为什么选择Milvus?

目录 为什么选择 Milvus&#xff1f; Milvus 的工作原理是什么&#xff1f; Milvus 由存储层和计算层组成&#xff0c;为了增强弹性和灵活性&#xff0c;Milvus 中的所有组件都是无状态的。系统由四个层级组成&#xff1a; Milvus 用于什么&#xff1f; 如今&#xff0c;已…

java学习记录之struts2struts标签上传国际化

Strtus2 OGNL表达式的结合 描述: struts2为OGNL表达式准备了两个对象 ActionContext: 作为ognl表达式的Context valueStack: 作为ognl表达式的Root 以上两个对象的创建 都是strutsPrepareAndExecuteFilter中准备好. Ognl和Struts使用上的结合: 表单提交,其中提交的键可以看作…

iview切换Select时选项丢失,重置Seletc时选项丢失

分析原因 在旧版本的iview中如果和filterable一起使用时&#xff0c;当值清空选项或者使用重置按钮清空时选项会丢失。 解决方式一 把去掉filterable 解决方式二 使用ref&#xff0c;调用clearSingleSelect()方法清空 ref"perfSelect" this.$refs.perfSelect.c…

Nginx上游节点健康检测

Nginx默认是没有支持上游节点健康检测的。 可以使用Tengine 文档 - The Tengine Web Server 或者自行下载nginx然后自己安装nginx_upstream_check_module 模块 在linux下载nginx wget http://nginx.org/download/nginx-1.25.1.tar.gz 下载插件 GitHub - yaoweibin/nginx_u…

【Java高级编程】Java8的新特性

Java8的新特性 1、Java8的新特性概述2、Lambda表达式2.1、Lambda表达式使用前后的对比2.2、Lambda表达式的基本语法2.3、如何使用&#xff1a;分为六种情况 3、函数式接口3.1、函数式接口的使用说明3.2、Java8中关于Lambda表达式提供的4个基本的函数式接口3.3、总结 4、方法引用…

开源建站博客社区系统大放送

前言 软件开发成本非常高昂&#xff0c;写demo易&#xff0c;做产品难&#xff0c;难就难在无数细节需要精雕细琢。 学习博客、论坛、内容管理系统这些典型的、通用型的系统&#xff0c;能极大提升你的软件架构和开发能力。本文筛选了目前主流的开源项目&#xff0c;帮助大家入…

动手学深度学习v2 p1引言 监督学习与无监督学习

1.引言 1.2. 机器学习中的关键组件 首先介绍一些核心组件。无论什么类型的机器学习问题&#xff0c;都会遇到这些组件&#xff1a; 可以用来学习的数据&#xff08;data&#xff09;&#xff1b; 如何转换数据的模型&#xff08;model&#xff09;&#xff1b; 一个目标函数…

linux--用户相关

目录 一.要在云服务器官网重置root密码成功后才能登录xshell(重装系统后登录也不例外&#xff09; 二.添加普通用户&#xff1a; 三.查看root下有几个普通用户&#xff1a; 四.给用户设置密码&#xff1a; 五、用户登录​编辑 六、查看当前所在用户&#xff1a; 七、查看…

windows上phpstudy 在切换php7.0到7.2后项目404

项目从7.0切换到7.2.9一访问本地就报404&#xff0c;然后重启 重新配置nginx.conf也无效 然后取查看phpstudy 的 nginx/logs/error.log 发现一访问本地网站就报下面错 phpstudy报错 2023/06/28 11:36:28 [error] 14128#19616: *1 upstream prematurely closed connection whi…

Linux——扩容/根分区(LVM+非LVM)

摘要 本博文主要是对linux虚拟机进行磁盘得扩容操作。 在计算机中MBR&#xff08;Master Boot Record&#xff09;&#xff08;主引导记录&#xff09;和GPT&#xff08;GUID Partition Table&#xff09;&#xff08;GUID意为全局唯一标识符&#xff09;是在磁盘上存储分区信…

Redis跳跃表是如何添加元素的?

今天分享的这道题来自于蔚来的真实面试题。 Java 面试不可能不问 Redis&#xff0c;问到 Redis 不可能不问 Redis 的常用数据类型&#xff0c;问到 Redis 的常用数据类型&#xff0c;不可能不问跳跃表&#xff0c;当问到跳跃表经常会被问到跳跃表的查询和添加流程&#xff0c;…

conda虚拟环境中安装的cuda和服务器上安装的cuda的异同

服务器上已安装Nvidia提供的cuda&#xff0c;nvidia-smi时会出现已安装的CUDA版本。如下图所示&#xff0c;服务器上已安装好的cuda版本为10.1。 但是当我们在Anaconda虚拟环境下安装pytorch或者paddlepaddle等深度学习框架的GPU版本时&#xff0c;通常会选择较高版本的cuda&a…

python3开发-Word助手

目录 背景 思路 步骤 代码示例 总结 背景 在日常工作和学习中&#xff0c;我们经常需要处理Word文档&#xff0c;例如编辑、提取内容、生成报告等。而Python是一门功能强大的编程语言&#xff0c;它提供了丰富的库和工具&#xff0c;使得我们可以利用Python来处理Word文档…

chatgpt赋能python:Python运输打折问题解决方案

Python运输打折问题解决方案 作为一个有10年Python编程经验的工程师&#xff0c;我深知Python在物流行业中的广泛应用。而运输打折作为物流运营中的重要一环&#xff0c;一直是Python开发者面临的一个难题。本文将介绍一些 Python 应用程序&#xff0c;帮助你计算和优化你的运…

Flink DataStream之创建执行环境

新建project&#xff1a; pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://ma…

基于springboot实现的博客系统(免费)

1.1 项目概述 开发语言&#xff1a;Java8 数据库&#xff1a;MySQL5.7以上版本 前端技术&#xff1a;template模板引擎 后端技术&#xff1a;Springboot SpringMVC MyBaties shiro 数据库连接池&#xff1a;Druid 服务器&#xff1a;Tomcat 开发工具&#xff1a;idea…

如何优雅的实现跨应用的代码共享

在 2020 年上半年&#xff0c;Webpack 发布了一项非常激动人心的特性&#xff1a;Module Federation(译为模块联邦)&#xff0c;这个特性一经推出就获得了业界的广泛关注&#xff0c;甚至被称为前端构建领域的Game Changer。实际上&#xff0c;这项技术确实很好地解决了多应用模…

一步一步指导如何使用 ESP 深度学习在 ESP32-S3 上进行手势识别

在本文中,我们将了解如何使用ESP-DL并在ESP32-S3上部署深度学习模型。文末附免费源代码下载链接 人工智能改变了计算机与现实世界交互的方式。决策是通过将微型低功耗设备和传感器的数据获取到云端来进行的。连接性、高成本和数据隐私是这种方法的一些缺点。边缘人工智…