当前位置: 首页 > news >正文

【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++】一题掌握空指针

今天看见一道面试题&#xff0c;比较有意思&#xff0c;这一分享出来&#xff1a; 1.下面程序能编译通过吗&#xff1f; 2.下面程序会崩溃吗&#xff1f;在哪里崩溃 class A {public:void PrintA(){cout<<_a<<endl;}void Show(){cout<<"Show()"&…...

初识HarmonyOS

一、HarmonyOS VS Android 相信很多关注鸿蒙的⼈,都会关注的⼀个焦点话题,那就是HarmonyOS是不是Android的套壳,对于这个话题,我只想阐明以下⼏个观点: HarmonyOS并不是Android的替代品,HarmonyOS与Android并⾮同⼀个赛道。HarmonyOS⽬前缺乏⽣态⽀持这⼀点远远⽐不上An…...

备战蓝桥杯---二分(入门)

话不多说&#xff0c;先来个模板题来回顾一下上次讲的&#xff1a; 下面是AC代码&#xff1a; 下面进入正题&#xff1a; 本题对1&#xff0c;2行与3&#xff0c;4行组合&#xff0c;再用二分查找即可实现n^2logn的复杂度。 下面是AC代码&#xff1a; 接题&#xff1a; 让我们…...

开发 Chrome 浏览器插件时进行 Vue3+Vite 多页面多入口配置

使用 Vite 开发 Chrome 插件时&#xff0c;构建多页面以及多 js 文件 因为发现 Vite 多页面构建有很多分歧以及问题点&#xff0c;所以我把我在 Chrome 插件开发上面使用到的 Vite 多页面以及多入口文件构建配置单独拿出来 开发 Chrome 插件是&#xff0c;一般会需要一个 popup…...

MacOS X 中 OpenGL 环境搭建 Makefile的方式

1&#xff0c;预备环境 安装 brew&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装glfw&#xff1a; brew install glfw 安装glew&#xff1a; brew install glew 2.编译 下载源代码…...

前端工程化之:webpack1-6(编译过程)

一、webpack编译过程 webpack 的作用是将源代码编译&#xff08;构建、打包&#xff09;成最终代码。 整个过程大致分为三个步骤&#xff1a; 初始化编译输出 1.初始化 初始化时我们运行的命令 webpack 为核心包&#xff0c; webpack-cli 提供了 webpack 命令&#xff0c;通过…...

javaweb学习问题集

1 创建一个Javaweb项目 因为项目要放在tomcat10里运行&#xff0c;在添加tomcat10的依赖时&#xff0c;右键模块没有add frameworks support ,解决方法&#xff1a;按两下shift键&#xff0c;直接搜索 add frameworks support index.jsp文件我们已经不用了 我们在ideal上开发…...

java—AWT

AWT 课程&#xff1a;1、GUI编程简介_哔哩哔哩_bilibili 一.介绍 包含了很多类和接口&#xff01;GUI&#xff01;元素&#xff1a;窗口、按钮、文本框java.awt 二.窗口 1.构造 2.方法 // 实例化frame类Frame frame new Frame("这个一个框");// 设置可见性frame.…...

SQL注入-sqli-labs-master第一关

实验环境&#xff1a; Nginx.1.15.11 MySQL&#xff1a;5.7.26 实验步骤&#xff1a; 1.第一步&#xff1a; 在id1后加入一个闭合符号&#xff0c;如果报错&#xff0c;再在后面加上 -- 将后面注释掉&#xff0c;如果不报错&#xff0c;则证明为字符型。 http://127.0.0.1/…...

简述云原生基础定义及关键技术

云原生是什么 云原生是面向“云”而设计的应用,因此技术部分依赖于传统云计算的 3 层概念,基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。 例如,敏捷的不可变基础设施交付类似于 IaaS,用来提供计算网络存储等基础资源,这些资源是可编程且不可变的,直…...

游戏中排行榜的后台实现

游戏中经常会有排行榜需求需要实现&#xff0c;例如常见的战力排行榜、积分排行榜等等。 排行榜一般会用到 Redis 来实现&#xff0c;原因是&#xff1a; Redis 基于内存操作&#xff0c;速度快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的样本&#xff0c;其输入表示为 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&#xff08;获得控制台信息&#xff09;1.5 SetConsoleCursorPosition&#xff08;设置光标位置&#xff09;1.6 GetConsoleCursorInfo&#xff08;获得光标…...

01.领域驱动设计:微服务设计为什么要选择DDD学习总结

目录 1、前言 2、软件架构模式的演进 3、微服务设计和拆分的困境 4、为什么 DDD适合微服务 5、DDD与微服务的关系 6、总结 1、前言 我们知道&#xff0c;微服务设计过程中往往会面临边界如何划定的问题&#xff0c;不同的人会根据自己对微服务的理 解而拆分出不同的微服…...

写静态页面——魅族导航_前端页面练习

0、效果&#xff1a; 1、html代码&#xff1a;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...

Go 命令行解析 flag 包之快速上手

本篇文章是 Go 标准库 flag 包的快速上手篇。 概述 开发一个命令行工具&#xff0c;视复杂程度&#xff0c;一般要选择一个合适的命令行解析库&#xff0c;简单的需求用 Go 标准库 flag 就够了&#xff0c;flag 的使用非常简单。 当然&#xff0c;除了标准库 flag 外&#x…...

React16源码: React中commitAllHostEffects内部的commitDeletion的源码实现

commitDeletion 1 &#xff09;概述 在 react commit 阶段的 commitRoot 第二个while循环中调用了 commitAllHostEffects&#xff0c;这个函数不仅仅处理了新增节点&#xff0c;更新节点最后一个操作&#xff0c;就是删除节点&#xff0c;就需要调用 commitDeletion&#xff0…...

[机器学习]简单线性回归——梯度下降法

一.梯度下降法概念 2.代码实现 # 0. 引入依赖 import numpy as np import matplotlib.pyplot as plt# 1. 导入数据&#xff08;data.csv&#xff09; points np.genfromtxt(data.csv, delimiter,) points[0,0]# 提取points中的两列数据&#xff0c;分别作为x&#xff0c;y …...

2024年搭建幻兽帕鲁服务器价格多少?如何自建Palworld?

自建幻兽帕鲁服务器租用价格表&#xff0c;2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器&#xff0c;配置分为4核16G和4核32G服务器&#xff0c;4核16G配置32.25元/1个月、3M带宽96.75元/1个月、8核32G配置10M带宽90.60元/1个月&#xff0c;8核32G配置3个月271.80元。ECS…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...