【docker】linux系统docker的安装及使用
一、docker应用的安装
1.1 安装方式
- Docker的自动化安装,即使用提供的一键安装的脚本,进行安装。
官方的一键安装方式:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内 daocloud一键安装命令:curl -sSL https://get.daocloud.io/docker | sh
执行上述任一条命令,耐心等待即可完成Docker的安装。
- Docker手动安装(博主用的手动安装)
1.2 安装环境条件
Docker从17.03版本之后分为CE(Community Edition: 社区版)和EE(Enterprise Edition: 企业版)。Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。
lsb_release -a #查看系统版本
uname -r #查看内核版本
#其它查看系统版本命令 cat /etc/os-version 、cat /etc/os-release、cat /etc/redhat-release
#其它查看内核版本方式 cat /proc/version、uname -a
本机linux系统和内核版本:
1.3 手动安装方式
1.3.1 卸载旧版本
如果安装过旧版本,可执行该步骤
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce
1.3.2 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
1.3.3 设置Docker源仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
官方的源地址比较慢,可使用国内比较快的地址:
阿里云:http:**//mirrors.aliyun.com/docker-ce/linux/centos/**docker-ce.repo 清华大学源:https:**//mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/**docker-ce.repo
设置之后的结果:

docker-ce.repo内容:
1.3.4 安装
安装版本:docker-ce为社区免费版本。
yum install -y docker-ce docker-ce-cli containerd.io
如果不需要docker-ce-cli或containerd.io可直接执行如下命令
yum install -y docker-ce
1.3.5 检测Docker安装情况
docker version #查看docker版本
1.3.6 卸载docker
yum remove docker-ce #删除安装包
rm -rf /var/lib/docker #删除镜像、容器、配置文件等内容
二、docker服务启停命令
systemctl start docker #启动
systemctl stop docker #停止
systemctl status docker #状态
systemctl restart docker #重启systemctl enable docker #开机自启
systemctl disenable docker #关闭开机自启systemctl daemon-reload #守护进程重启
查看本机docker服务状态:

三、docker的使用
3.1 镜像-常用操作命令
docker search 镜像名 #搜索仓库镜像 如:docker search nginx
docker pull 镜像名:版本号 #拉取镜像 如:docker pull mongo:4.44
docker images #查看已拉取的所有镜像
docker rmi image_id #删除镜像
3.2 容器--常用操作命令
3.2.1 docker run 命令(重要)
docker run :创建一个新的容器并运行一个命令
命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -it ubuntu /bin/bash #启动(新)容器docker run --name mynginx -d -p 80:80 nginx #启动一个新的nginx容器docker run -d -p 3310:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 #启动一个新的mysql容器docker run -d -p 1521:1521 --name oracle11g \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g #启动一个新的oracle数据库容器docker run --name nginx01 -d -p 80:80 \
-v $PWD/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/html:/etc/nginx/html \
-v $PWD/log/nginx:/var/log/nginx nginx #启动一个新的nginx容器 加了数据卷 -V
3.2.2 docker 其它命令
docker start 容器ID或名字 #启动容器
docker stop 容器ID或名字 #停止容器
docker restart 容器ID或名字 #重启容器
docker ps #查看正在运行的容器
docker ps -a #查看所有容器docker rm container_id #删除容器
docker exec -it 容器ID|容器name /bin/bash #进入容器
exit #退出容器docker inspect 容器ID|容器name #获取容器/镜像的元数据
#使用方法
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $CONTAINER_ID #获取容器 IP
docker inspect tomcat7 | grep IPAddress #获取IP地址
3.2.3 容器数据卷
(1)挂载数据卷
-v 本地目录:容器内目录:权限 如ro #指定路径挂载
-v 卷名:容器内目录:权限 如rw #具名挂载
-v 容器内目录:权限 如rw #匿名挂载
(2)查看数据卷
docker volume ls docker volume inspect 卷名

(3)查看容器挂载情况
docker inspect nginx01

docker inspect oracle11g

(4)数据卷默认位置
注:所有docker容器的卷,没有指定目录情况下(具名挂载和匿名挂载),都在 /var/lib/docker/volumes/ 下。
四、docker深度学习(拓展)
以上三部分,日常使用足矣。下面是更深的学习内容了。防止遗忘,还是记录在这里。

4.1 run 的参数是重点
重点的几个参数,不止以下这些,太多、记不住就不罗列了,有兴趣可以度娘。
-u root #如果执行docker run 是root用户执行的,生成的container不是root的话,在docker run时加参数
--net="bridge" #容器网络设置:
-e, --env=[] #指定环境变量,容器中可以使用该环境变量
4.2 Dockerfile文件和docker build
Dockerfile文件和docker build 创建镜像
Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定义的镜像.
Dockerfile分为四部分:
- 基础镜像信息
- 维护者信息
- 镜像操作指令
- 容器启动时执行指令
4.3 docker save 和docker load
上传本地镜像到docker服务器, 和 保存docker服务器里的镜像到本地。
# docker save -o [定义一个tar文件的文件名] [要保存的镜像的id]
docker save -o imagesname.tar dd886f784c2c
# 生成的tar文件存储路径为当前路径下docker load -i imagesname.tar
然后可以再次通过docker images命令查看加载的镜像docker commit [要保存的容器id] [起一个镜像名] #保存对一个docker容器的改动
4.4 Docker-Compose

- Docker-Compose项目是基于Python开发的Docker官方开源项目,负责实现对Docker容器集群的快速编排。
- Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。
- Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器(container)。
多个应用镜像组合在一起, 写在一个配置文件中, 一次写好,处处使用,超方便、超速度。直接就按文件内容部署、编排容器了。自动部署相关应用、创建容器、运行容器。
看图理解比较直观一点
相关文章:
【docker】linux系统docker的安装及使用
一、docker应用的安装 1.1 安装方式 Docker的自动化安装,即使用提供的一键安装的脚本,进行安装。 官方的一键安装方式:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令:curl -s…...
【C++】一题掌握空指针
今天看见一道面试题,比较有意思,这一分享出来: 1.下面程序能编译通过吗? 2.下面程序会崩溃吗?在哪里崩溃 class A {public:void PrintA(){cout<<_a<<endl;}void Show(){cout<<"Show()"&…...
初识HarmonyOS
一、HarmonyOS VS Android 相信很多关注鸿蒙的⼈,都会关注的⼀个焦点话题,那就是HarmonyOS是不是Android的套壳,对于这个话题,我只想阐明以下⼏个观点: HarmonyOS并不是Android的替代品,HarmonyOS与Android并⾮同⼀个赛道。HarmonyOS⽬前缺乏⽣态⽀持这⼀点远远⽐不上An…...
备战蓝桥杯---二分(入门)
话不多说,先来个模板题来回顾一下上次讲的: 下面是AC代码: 下面进入正题: 本题对1,2行与3,4行组合,再用二分查找即可实现n^2logn的复杂度。 下面是AC代码: 接题: 让我们…...
开发 Chrome 浏览器插件时进行 Vue3+Vite 多页面多入口配置
使用 Vite 开发 Chrome 插件时,构建多页面以及多 js 文件 因为发现 Vite 多页面构建有很多分歧以及问题点,所以我把我在 Chrome 插件开发上面使用到的 Vite 多页面以及多入口文件构建配置单独拿出来 开发 Chrome 插件是,一般会需要一个 popup…...
MacOS X 中 OpenGL 环境搭建 Makefile的方式
1,预备环境 安装 brew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装glfw: brew install glfw 安装glew: brew install glew 2.编译 下载源代码…...
前端工程化之:webpack1-6(编译过程)
一、webpack编译过程 webpack 的作用是将源代码编译(构建、打包)成最终代码。 整个过程大致分为三个步骤: 初始化编译输出 1.初始化 初始化时我们运行的命令 webpack 为核心包, webpack-cli 提供了 webpack 命令,通过…...
javaweb学习问题集
1 创建一个Javaweb项目 因为项目要放在tomcat10里运行,在添加tomcat10的依赖时,右键模块没有add frameworks support ,解决方法:按两下shift键,直接搜索 add frameworks support index.jsp文件我们已经不用了 我们在ideal上开发…...
java—AWT
AWT 课程:1、GUI编程简介_哔哩哔哩_bilibili 一.介绍 包含了很多类和接口!GUI!元素:窗口、按钮、文本框java.awt 二.窗口 1.构造 2.方法 // 实例化frame类Frame frame new Frame("这个一个框");// 设置可见性frame.…...
SQL注入-sqli-labs-master第一关
实验环境: Nginx.1.15.11 MySQL:5.7.26 实验步骤: 1.第一步: 在id1后加入一个闭合符号,如果报错,再在后面加上 -- 将后面注释掉,如果不报错,则证明为字符型。 http://127.0.0.1/…...
简述云原生基础定义及关键技术
云原生是什么 云原生是面向“云”而设计的应用,因此技术部分依赖于传统云计算的 3 层概念,基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。 例如,敏捷的不可变基础设施交付类似于 IaaS,用来提供计算网络存储等基础资源,这些资源是可编程且不可变的,直…...
游戏中排行榜的后台实现
游戏中经常会有排行榜需求需要实现,例如常见的战力排行榜、积分排行榜等等。 排行榜一般会用到 Redis 来实现,原因是: Redis 基于内存操作,速度快Redis 提供了高效的有序集合 zset 例如创建一个名为 rank 的排行榜 # 为用户use…...
《动手学深度学习(PyTorch版)》笔记3.1
Chapter3 Linear Neural Networks 3.1 Linear Regression 3.1.1 Basic Concepts 我们通常使用 n n n来表示数据集中的样本数。对索引为 i i i的样本,其输入表示为 x ( i ) [ x 1 ( i ) , x 2 ( i ) , . . . , x n ( i ) ] ⊤ \mathbf{x}^{(i)} [x_1^{(i)}, x_2…...
【贪吃蛇:C语言实现】
文章目录 前言1.了解Win32API相关知识1.1什么是Win32API1.2设置控制台的大小、名称1.3控制台上的光标1.4 GetStdHandle(获得控制台信息)1.5 SetConsoleCursorPosition(设置光标位置)1.6 GetConsoleCursorInfo(获得光标…...
01.领域驱动设计:微服务设计为什么要选择DDD学习总结
目录 1、前言 2、软件架构模式的演进 3、微服务设计和拆分的困境 4、为什么 DDD适合微服务 5、DDD与微服务的关系 6、总结 1、前言 我们知道,微服务设计过程中往往会面临边界如何划定的问题,不同的人会根据自己对微服务的理 解而拆分出不同的微服…...
写静态页面——魅族导航_前端页面练习
0、效果: 1、html代码:: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...
Go 命令行解析 flag 包之快速上手
本篇文章是 Go 标准库 flag 包的快速上手篇。 概述 开发一个命令行工具,视复杂程度,一般要选择一个合适的命令行解析库,简单的需求用 Go 标准库 flag 就够了,flag 的使用非常简单。 当然,除了标准库 flag 外&#x…...
React16源码: React中commitAllHostEffects内部的commitDeletion的源码实现
commitDeletion 1 )概述 在 react commit 阶段的 commitRoot 第二个while循环中调用了 commitAllHostEffects,这个函数不仅仅处理了新增节点,更新节点最后一个操作,就是删除节点,就需要调用 commitDeletion࿰…...
[机器学习]简单线性回归——梯度下降法
一.梯度下降法概念 2.代码实现 # 0. 引入依赖 import numpy as np import matplotlib.pyplot as plt# 1. 导入数据(data.csv) points np.genfromtxt(data.csv, delimiter,) points[0,0]# 提取points中的两列数据,分别作为x,y …...
2024年搭建幻兽帕鲁服务器价格多少?如何自建Palworld?
自建幻兽帕鲁服务器租用价格表,2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器,配置分为4核16G和4核32G服务器,4核16G配置32.25元/1个月、3M带宽96.75元/1个月、8核32G配置10M带宽90.60元/1个月,8核32G配置3个月271.80元。ECS…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...


