Docker 基础

一、快速入门:

1.Docker的安装

安装docker引擎

官方网址:Install Docker Engine on CentOS | Docker Docs

朋友们,有坑,千万不要用官方的仓库,就是下面这一步

记得用国内的镜像源:

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

下图是官方的步骤,第二行代码应换成国内的镜像源

如果,不小心用了国外的镜像源,记得按下面步骤

1.进入  /etc/yum.repos.d  目录2. 删除与docker相关的文件3.配置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4.然后再按官方的步骤安装

2.部署MySql

docker run -d \--name myFirst \-p 3000:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \mysql-d    是让容器在后台运行,一般与run是配套的。--name    给容器命名,必须唯一
--p       设置端口映射,访问主机的3000端口 映射到 访问容器的3306端口--e        暂时不清楚?设置时区?--e       也不太清楚?得给mysql设置个初始化密码我懂了  
-e  KEY=VALUE          意思是设置环境变量不同的镜像 -e不同 ,看docker hub 上镜像的说明

通过docker ps 可以看到,myFirst这个容器正在运行

此时你就可以 进入容器中 ,去登录mysql客户端

docker exec -it myFirst bash

我们也可以在linux虚拟机上去访问容器里的数据库,因为我们设置了端口映射,当访问本机的3000端口时,回去访问容器的3306端口。但记得 在连接,记得加 -h ip地址  ,虽然是在本机上操作,但还是要用上本机的ip地址。

 

3.镜像和容器

4.命令解读

一般docker run 和 -d 选项是配套的。

下面是真正的命名规范

5.案例 拉取nginx

docker的容器给我们准备的是 所必备的最小运行资源,因此进入容器内后,并不能使用vi 进入vim编辑器。

1.运行容器

2.查看容器

当使用 docker inspect 容器name   是查看某个容器的详细信息

当使用 docker volume inspect   是查看数据卷的详细信息,可以取看它本机上的挂载点在哪里。

3. 查看数据卷详细信息( 当不指定路径时,本机挂载点 默认是在  /var/lib/docker/volumes/    这个路径下)

4.当修改挂载点下的文件后,容器内相应的文件也被修改。

数据卷就像是一个桥梁

当我测试  docker volume prune 这个指令时,它会把 被删除容器的 数据卷清除 ,释放磁盘空间。

6.mysql 容器的数据挂载

遇到的问题:

1.final shell无法正常上传文件 。因为我使用的是普通用户,普通用户只能在自己的home/用户名/目录下进行上传,是无法去 其他路径,即root用户的范围来上传文件。

解决:使用root 用户去连接。

7.Dockerfile 语法

分层,可以让我们去共享某一个层。

copy时,docker会为我们去创建目录

下面这段代码,让我回忆了很多,我重新回顾了环境变量,软链接。

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录、容器内时区
ENV JAVA_DIR=/usr/local
ENV TZ=Asia/Shanghai
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 设定时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 安装JDK
RUN cd $JAVA_DIR \&& tar -xf ./jdk8.tar.gz \&& mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 指定项目监听的端口
EXPOSE 8080
# 入口,java项目的启动命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

下面来回顾软连接:

我忘记 -s -f  的含义, 但我从来不知道 -n是什么意思 

我的理解:解引用时,会指向确切的文件。即$TZ 会被解析成  具体的文件 ,然后修改$TZ 的值后,软链接仍然指向原来的值,可以看看下面第3张图。

8.自定义镜像

这个 句点 不能缺

实践:

在创建并运行容器时,需要指定其 名字:版本

9. 网络

使用自定义网络,才可以通过 容器名 ping通

当将容器连接到 自定义网络上时 ,有两种方式。

1.将运行时的容器连接到指定网络。使用docker  network create

2.在创建容器时连接到指定网络。使用 --network 关键字

 

10.项目部署

一个容器可以配置多个端口映射

番外篇:硬啃英语文档

1.Docker overview 

  :响应式部署和扩展

Docker Architecture

守护进程

客户端

Docker registries: Docker 注册表

A Docker registry stores Docker images. Docker Hub is a public registry that anyone can use, and Docker looks for images on Docker Hub by default. You can even run your own private registry.

When you use the docker pull or docker run commands, Docker pulls the required images from your configured registry. When you use the docker push command, Docker pushes your image to your configured registry.

Docker Objects

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

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

相关文章

C# 替换字符串最后一个逗号为分号

使用场景,sql语句的insert into table(c1,c2,c3) values (v1,v2,v3),(v1,v2,v3),(v1,v2,v3), 为了提高执行效率,在一个insert into中执行时,在循环中拼接语句,最后一个逗号需要替换为分号才能执行。 public static string Replace…

干洗店软件,洗鞋店收银管理系统小程序app

闪站侠洗衣洗鞋店管理系统是一款专业的洗护管理软件,它集收银系统,会员卡管理系统,财务报表系统等强大功能为一身,系统界面简洁优美,操作直观简单。系统为广大干洗店,洗衣店提供了成本分析,利润分析&#x…

浅谈智能安全配电装置在老年人建筑中的应用

摘要:我国每年因触电伤亡人数非常多,大多数事故是发生在用电设备和配电装置。在电气事故中,无法预料和不可抗拒的事故是比较少的,大量用电事故可采取切实可行措施来预防。本文通过结合老年人建筑的特点和智能安全配电装置的功能&a…

【方法】如何取消ZIP压缩包的密码?

我们知道,在压缩ZIP文件的时候,可以设置“打开密码”来保护压缩包,那后续不需要保护了,不想每次打开压缩包都输一次密码,要如何取消密码呢? 比较常用的方法是先把ZIP压缩包解压后,再压缩成没有…

微服务技术栈-Ribbon负载均衡和Nacos注册中心

文章目录 前言一、Ribbon负载均衡1.LoadBalancerInterceptor(负载均衡拦截器)2.负载均衡策略IRule 二、Nacos注册中心1.Nacos简介2.搭建Nacos注册中心3.服务分级存储模型4.环境隔离5.Nacos与Eureka的区别 总结 前言 在上面那个文章中介绍了微服务架构的…

除静电离子风嘴的工作原理及应用

除静电离子风嘴是一种常见的除静电设备,它的工作原理是通过产生大量的负离子来中和物体表面的静电电荷,从而达到除静电的目的。 除静电离子风嘴内部装有一个电离器,电离器会将空气中的氧气分子或水分子电离成正、负离子。这些带电的离子在空…

2023年地理信息系统与遥感专业就业前景与升学高校排名选择

活动地址:毕业季进击的技术er 地理信息系统(GIS,Geographic Information System),又称“地理信息科学”(Geographic Information Science),是一种具有信息系统空间专业形式的数据管理…

Vulnhub_driftingblues1靶机渗透测试

driftingblues1靶机 信息收集 使用nmap扫描得到目标靶机ip为192.168.78.166,开放80和22端口 web渗透 访问目标网站,在查看网站源代码的时候发现了一条注释的base64加密字符串 对其解密得到了一个目录文件 访问文件发现是一串ook加密的字符串&#xf…

【面试】C/C++面试八股

C/C面试八股 编译过程的四个阶段C和C语言的区别简单介绍一下三大特性多态的实现原理虚函数的构成原理虚函数的调用原理虚表指针在什么地方进行初始化的?构造函数为什么不能是虚函数为什么建议将析构函数设为虚函数虚函数和纯虚函数的区别抽象类类对象的对象模型内存…

用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

本篇文章将介绍如何使用开源的测试报告生成框架 Allure 生成规范、格式统一、美观的测试报告。 通过这篇文章的介绍,你将能够: 将 Allure 与 Pytest 测试框架相结合; 如何定制化测试报告内容 执行测试之后,生成 Allure 格式的测…

AutoGen - 多个Agent开发LLM应用的框架

文章目录 关于安装使用关于 Enable Next-Gen Large Language Model Applications 用多个Agent开发LLM应用的框架,这些agent可相互交流以解决任务。 官网:https://microsoft.github.io/autogen/github : http://github.com/microsoft/autogendiscord : https://discord.com/i…

面试官必问的分布式锁面试题,你答得上来吗?

一、面试聊聊-分布式锁,如何回答? 要分析分布式锁这个问题,我们根据黄金圈法则来分析 黄金圈法则是由美国营销顾问西蒙斯涅克(Simon Sinek)提出的一种思维模型,用于帮助人们更好地理解和传达信息。黄金圈法…

自定义类型:结构体,枚举,联合

目录 前言 一、结构体 1.构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7 修改默认对齐数 2. 位段 2.1 什么是位段 2.2 位段的内存分配 2.3 位段的跨平台问题 2.4 位段的应…

网络基础知识面试题1

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)

Spring-事务管理-加强

目录 开启事务 编程式事务 声明式事务 声明式事务的优点 声明式事务的粒度问题 声明式事务用不对容易失效 Spring事务失效可能是哪些原因 Transactional(rollbackFor Exception.class)注解 Spring 事务的实现原理 事务传播机制 介绍 用法 rollbackFor 场景举例 …

深入探究C++编程中的资源泄漏问题

目录 1、GDI对象泄漏 1.1、何为GDI资源泄漏? 1.2、使用GDIView工具排查GDI对象泄漏 1.3、有时可能需要结合其他方法去排查 1.4、如何保证没有GDI对象泄漏? 2、进程句柄泄漏 2.1、何为进程句柄泄漏? 2.2、创建线程时的线程句柄泄漏 …

CleanMyMacX 永久版下载激活码破解版

CleanMyMac X最新破解版V4.9.2是一款出色的Mac 系统垃圾清理程序。 该软件具有强大的垃圾清理功能,可以释放数 GB 的空间,让您的 Mac 焕然一新。 带有激活码的完整破解版 CleanmyMac 可加速您的 Mac 设备。 此外,cleanmymac还能帮助您从 Mac…

小谈设计模式(17)—状态模式

小谈设计模式(17)—状态模式 专栏介绍专栏地址专栏介绍 状态模式关键角色上下文(Context)抽象状态(State)具体状态(Concrete State) 核心思想Java程序实现首先,我们定义一个抽象状态类 State,其中包含一个处理请求的方法 handleRe…

Centos7 安装mysql 8.0.34并设置不区分大小写

索引 Centos7 安装mysql 8.0.34准备工作安装教程安装并配置配置MySQL配置远程访问重新启动MySQL服务 为已安装的MySQL8设置不区分大小写背景操作步骤 Centos7 安装mysql 8.0.34 准备工作 centos7 服务器 xshell 安装教程 安装并配置 在安装MySQL之前,我们应该…

【无标题】This project has been opened by another efinity instance

This project has been opened by another efinity instance 说明:(1)软件自动即出可能有些进程没有关闭 (2)目录中有中文路径。