Docker 的安装与使用

Docker 的安装

Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。
Docker CE 的安装请参考官方文档,我们这里以CentOS为例:
1、Docker 要求 CentOS 系统的内核版本高于 3.10
通过 uname -r 命令查看你当前的内核版本

uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update

3、卸载旧版本(如果安装过旧版本的话)

sudo yum remove -y docker*

4、安装需要的软件包, yum-util 提供 yum-config-manager 功能

yum install -y yum-utils

5、设置yum源,并更新 yum 的包索引

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

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

在这里插入图片描述
7、安装docker

yum install -y docker-ce-3:26.1.4-1.el7.x86_64  # 指定安装版本

8、启动并加入开机启动

systemctl start docker 
systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

10、卸载docker

yum remove -y docker*
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker
rm -rf /var/run/docker

Docker常用命令

镜像相关命令

1、列出镜像

docker image ls

2、拉取镜像(会从 Docker Hub 的仓库中下载镜像)

docker pull 镜像名称[:tag]
docker pull java:8

3、删除本地镜像

docker image rm 镜像名或镜像id

容器相关命令

1、运行容器
docker run [option] 镜像名 [向启动容器中传入的命令]

常用可选参数说明:
-d:代表后台运行容器
-p 宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
--name  为创建的容器命名
-e  为容器设置环境变量
--network=host  表示将主机的网络环境映射到容器中,容器的网络与主机相同

2、查看容器

docker ps [-a]
-a:查看全部的容器,包括没有运行

3、 查看容器日志

docker logs -f 容器id

4、 进入容器内容部

docker exec -it 容器id /bin/bash

5、容器与宿主机相互复制文件

# 将宿主机的文件复制到容器内部
docker cp 文件名称 容器id:容器内部路径
# 从容器里面拷贝文件到宿主机
docker cp 容器id:文件在容器内的路径  宿主机路径 

6、启动、停止容器

# 启动停止的容器
docker start 容器id# 停止指定的容器
docker stop 容器id
# 停止全部容器
docker stop $(docker ps -qa)# 删除指定容器(删除容器前,需要先停止容器)
docker rm 容器id

7、将容器保存为镜像

docker commit 容器名 镜像名

8、镜像备份与迁移

可以通过save命令将镜像打包成文件,拷贝给别人使用
docker save -o 保存的文件名 镜像名
docker save -o ./ubuntu.tar ubuntu在拿到镜像文件后,可以通过load方法,将镜像加载到本地
docker load -i ./ubuntu.tar

使用Dockerfile构建微服务镜像

Dockerfile是一个文本文件,其中包含了若干条指令,指令描述了构建镜像的细节
如下为Dockerfile的语言:

from: 指定当前自定义镜像依赖的环境
copy: 将相对路径下的内容复制到自定义镜像中
workdir: 声明镜像的默认工作目录
run: 执行的命令,可以编写多个
cmd: 需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准)

目标:将 5G定制网的微服务,打包成1个镜像文件

1、在微服务的目录新建一个 Dockerfile 的文件,在里面增加如下内容:
在这里插入图片描述

# 使用 jdk8 作为基础镜像
FROM jdk8:8u51# 设置工作目录
WORKDIR /app# 复制所有微服务的JAR文件到容器中
COPY ./cyberwing-common/cyberwing-common.jar /app/cyberwing-common/
COPY ./cyberwing-common/application.yml /app/cyberwing-common/
COPY ./capitek-upms/application-dev.yml /app/capitek-upms/
COPY ./capitek-upms/upms.jar /app/capitek-upms/# 暴露端口
EXPOSE 8120 8102ENV JAVA_OPTS "-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/ -Dfile.encoding=utf-8"ENTRYPOINT java ${JAVA_OPTS} -jar /app/cyberwing-common/cyberwing-common.jar --spring.config.location=/app/cyberwing-common/application.yml & \java ${JAVA_OPTS} -jar /app/capitek-upms/upms.jar --spring.config.location=/app/capitek-upms/application-dev.yml --jasypt.encryptor.password=capitekor & \wait

2、在Dockerfile所在路径执行以下命令构建镜像:

docker build -t my-app .
# -t 指定镜像名字,(.)表示Dockerfile文件所在路径

3、运行容器

docker run -d -p 18899:8899 --name my-app my-app

4、如果希望在运行容器时覆盖环境变量的值,可以在 docker run 命令中使用 -e 标志来传递环境变量
首先改写微服务的配置文件,将配置中统一设置的 Mysql、redis 这些配置项改为 变量 形式
在这里插入图片描述

docker run -d \-p 18120:8120 \-p 18102:8102 \--name my-app \-e DATABASE_URL="172.18.1.212" \-e DATABASE_PORT="3306" \-e DATABASE_NAME="cyberwing_v1.4_zdyfy" \-e DATABASE_USERNAME="ENC(FYthkcvukQtU+nbm+5lCtg==)" \-e DATABASE_PASSWORD="ENC(JUzm26YzVxf8CsmiqLiHAg==)" \my-app

学习文档 1 :
docker 知识点:
www.codezhou.top/article/docker使用#767b25e35ba84a2ba6c00f9f20a9caf1

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

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

相关文章

逐行加载 HTML 内容并实时显示效果:使用 wxPython 的实现

这篇博客中,我们将详细分析如何使用 wxPython 构建一个简单的桌面应用程序,用于逐行加载并显示 HTML 文件的内容,并在加载完成后通过浏览器组件呈现最终页面。通过该应用,我们可以体验到逐行加载 HTML 内容的视觉效果,…

【Linux】HTTP协议和HTTPS加密

文章目录 HTTP1、概念2、认识URL3、协议格式、请求方法和状态码4、HTTP请求和响应报头5、Cookie和Session HTTPS1、对称和非对称加密2、对称非对称加密安全分析3、证书 HTTP 1、概念 我们在应用层定制协议时,不建议直接发送结构体对象,因为在不同的环境…

计算机网络 (1)互联网的组成

一、互联网的边缘部分 互联网的边缘部分由所有连接在互联网上的主机组成,这些主机又称为端系统(end system)。端系统可以是各种类型的计算机设备,如个人电脑、智能手机、网络摄像头等,也可以是大型计算机或服务器。端系…

网络延迟对Python爬虫速度的影响分析

Python爬虫因其强大的数据处理能力和灵活性而被广泛应用于数据抓取和网络信息收集。然而,网络延迟是影响爬虫效率的重要因素之一。本文将深入探讨网络延迟对Python爬虫速度的影响,并提供相应的代码实现过程,以帮助开发者优化爬虫性能。 网络…

单片机设计电流与温度监控python上位机监控平台设计

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 在现代工业自动化和智能设备管理中,对电流和温度的实时监控是…

通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制

目录 通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制 一、引言 二、语义搜索与 MongoDB Atlas 的背景 三、MongoDB Atlas 的向量搜索功能 1. 向量搜索的实现方式 2. 典型操作示例 四、RAG 在 MongoDB Atlas 的应用 1、RAG是什么 2、RAG 的实现过程 3、RA…

Spring——事务

事务 JdbcTemplate 简介 Spring框架对JDBC进行封装&#xff0c;使用JdbcTemplate方便实现对数据库操作 准备工作 ①搭建子模块 搭建子模块&#xff1a;spring-jdbc-tx ②加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependenc…

C++ —— 哈希详解 - 开散列与闭散列

目录 1. 哈希的概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因子 1.4 哈希函数 1.4.1 除法散列法/除留余数法 1.4.2 乘法散列法 1.4.3 全域散列法 1.5 处理哈希冲突 1.5.1 开放定址法&#xff08;闭散列&#xff09; 1. 线性探测&#xff08;挨着查找&#xff09; 2.…

苦等三年!金克斯大人回来了!

2021年《英雄联盟&#xff1a;双城之战》第一季上线&#xff0c;该动画连续三周在全球 52 个国家和地区占据榜单前十&#xff0c;并在第49届安妮奖中斩获最佳电视 / 流媒体类动画、最佳艺术指导、最佳角色动画等9项大奖。 苦等三年&#xff01;&#xff01;&#xff01; 《双城…

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备:大华IPC摄像头局域网访问异常解决办法

在当今社会&#xff0c;安全监控已成为各类场所不可或缺的一部分。无论是家庭、学校、商业场所还是公共场所&#xff0c;安全监控设备都扮演着至关重要的角色。在众多监控品牌中&#xff0c;大华IPC摄像头凭借其高清画质、强大功能和卓越稳定性&#xff0c;赢得了市场的广泛认可…

随机数

目录 一、传统方式&#xff1a;std::rand 和 std::srand 使用方法&#xff1a; 优缺点&#xff1a; 二、现代方式&#xff1a; 库&#xff08;推荐&#xff09; 1. 随机整数 2. 随机浮点数 3. 布尔值 4. 字符 5. 正态分布&#xff08;高斯分布&#xff09; 6. 离散分…

Python Plotly 库使用教程

Python Plotly 库使用教程 引言 数据可视化是数据分析中至关重要的一部分&#xff0c;它能够帮助我们更直观地理解数据、发现潜在的模式和趋势。Python 提供了多种数据可视化库&#xff0c;其中 Plotly 是一个功能强大且灵活的库&#xff0c;支持交互式图表的创建。与静态图表…

LeetCode题解:5.最长回文子串【Python题解超详细,中心拓展、动态规划、暴力解法】

题目描述 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 解答 class Solution(object):def longestPalindrome(self, s):""":type s: str:rtype: str"""# 思路一&#xff1a;中心拓展def extend_from_center(left,right):# 从中心向…

企业一站式管理系统odoo的研究——PLM插件的搭建

大纲 1. 环境准备1.1 安装操作系统1.2 更新操作系统1.3 配置用户组和用户1.3.1 创建用户组 odoo1.3.2. 创建用户 odoo1.3.3. 设置用户 odoo 的密码1.3.4. 验证用户和组1.3.5. 将用户 odoo 添加到添加sudo组&#xff1a;1.3.6. 切到odoo用户 2. 安装 Odoo1. 安装依赖项目2.2. 安…

Keil基于ARM Compiler 5的工程迁移为ARM Compiler 6的工程

环境&#xff1a; keil版本为5.38&#xff0c;版本务必高于5.30 STM32F4的pack包版本要高于2.9 软件包下载地址&#xff1a;https://zhuanlan.zhihu.com/p/262507061 一、更改Keil中编译器 更改后编译&#xff0c;会报很多错&#xff0c;先不管。 二、更改头文件依赖 观察…

ABAP开发学习——ST05 ABAP SQL跟踪工具

操作步骤 第一步使用ST05之前&#xff0c;将要查的程序停留想要看的操作的前一步&#xff0c;这里想看到取数操作&#xff0c;所以停留在选择界面 第二步进入ST05 选择SQL Trace 然后激活 第三步去执行程序 第四步ST05取消激活 第五步查看操作 选完时间直接执行

C/C++语言基础--C++模板与元编程系列六,C++元编程相关库的讲解与使用

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 模板与元编程是C的重要特点&#xff0c;也是难点&#xff0c;本人预计将会更新10期左右进行讲解&#xff0c;这是第六期&#xff0c;讲解元编程相关库等&#xff0c;本人感觉这一部分内容还是比较复杂的&am…

uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器&#xff0c;可以用作多级分类的场景。本人引入插件后&#xff0c;发现&#xff0c;在h5和微信小程序都只能选择到叶子级。而在给出的官方组件示例中确并非如此。 以选择年级&#xff0c;而不选择班级。然后&#xff0c;想试试…

探索 HTML 和 CSS 实现的蜡烛火焰

效果演示 这段代码是一个模拟蜡烛火焰的HTML和CSS代码。它创建了一个具有动态效果的蜡烛火焰动画&#xff0c;包括火焰的摆动、伸缩和光晕的闪烁。 HTML <div class"holder"><div class"candle"><div class"blinking-glow"&g…

react + ts定义接口类型写法

接口&#xff08;未进行ts定义&#xff09; export async function UserList(params: {// keyword?: string;current?: number;pageSize?: number;},// options?: { [key: string]: any }, ) {return request<API1.UserList>(http://geek.itheima.net/v1_0/mp/artic…