备忘录:Docker基础操作与常用命令

news2025/1/15 17:27:50

文章目录

  • Docker基础操作
    • 1.1 Docker在线安装
      • 1.1.1 安装基础软件包
      • 1.1.2 安装docker主程序
        • 1.1.2.1 设置国内源
        • 1.1.2.2 安装docker
    • 1.2 Docker离线安装
      • 1.2.1 下载离线安装包
      • 1.2.2 安装docker依赖包以及docker
    • 1.3 设置自启动并启动dokcer
    • 1.4 安装docker-compose
      • 1.4.1 命令行下载文件,并赋值可执行权限
  • Docker常用命令
    • 1.5 新建并启动容器
    • 1.6 列出容器
    • 1.7 列出所有容器
    • 1.8 停止容器
    • 1.9 强制停止容器
    • 1.10 启动已停止的容器
    • 1.11 删除容器
    • 1.12 查看容器的日志
    • 1.13 查看指定容器情况
    • 1.14 查看所有容器情况
    • 1.15 进入Docker容器内部的bash
    • 1.16 docker命令图
  • Docker打包应用流程
    • 1.17 打包应用工程
    • 1.18 编写Dockerfile文件
    • 1.19 编写docker-compose文件
    • 1.20 Docker-compose弊端
    • 1.21 Docker stack介绍
      • 1.21.1 启用docker stack
      • 1.21.2 运行Docker stack
      • 1.21.3 Docker stack相关命令
        • 1.21.3.1 查看服务器节点状态
        • 1.21.3.2 查看服务状态
        • 1.21.3.3 动态扩容
        • 1.21.3.4 其他命令

Docker基础操作

1.1 Docker在线安装

1.1.1 安装基础软件包

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

1.1.2 安装docker主程序

1.1.2.1 设置国内源
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.1.2.2 安装docker
sudo yum install docker-ce

1.2 Docker离线安装

1.2.1 下载离线安装包

以docker 17.12.0版本为例说明。
下载下面的10个安装文件,并按照下面的目录结构上传好。
package下面的8个文件为依赖包,最上面的2个文件为主安装文件。
在这里插入图片描述

1.2.2 安装docker依赖包以及docker

cd package
rpm -Uvh *.rpm --nodeps –force
cd ../
rpm -Uvh container-selinux-2.99-1.el7_6.noarch.rpm
rpm -Uvh docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm

1.3 设置自启动并启动dokcer

sudo systemctl enable docker
sudo systemctl start  docker

docker –v 验证是否安装成功

1.4 安装docker-compose

上面docker安装好后,只能通过手工输入命令,并在命令行中指定配置运行dokcer应用。效率低下且无法同时管理多个容器应用。
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。但是docker-compose需要独立安装。

1.4.1 命令行下载文件,并赋值可执行权限

curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 sudo chmod +x /usr/local/bin/docker-compose

docker-compose -v 验证是否安装成功

Docker常用命令

1.5 新建并启动容器

docker run -p 80:80 --name nginx -d nginx:1.17.0

-d选项:表示后台运行
–name选项:指定运行后容器的名字为nginx,之后可以通过名字来操作容器
-p选项:指定端口映射,格式为:hostPort:containerPort

1.6 列出容器

docker ps

1.7 列出所有容器

docker ps -a

1.8 停止容器

# $ContainerName及$ContainerId可以用docker ps命令查询出来
docker stop $ContainerName(或者$ContainerId)

比如:
docker stop nginx
#或者
docker stop c5f5d5125587

1.9 强制停止容器

docker kill $ContainerName(或者$ContainerId)

1.10 启动已停止的容器

docker start $ContainerName(或者$ContainerId)

1.11 删除容器

删除指定容器

docker rm  $ContainerName(或者$ContainerId)

强制删除所有容器

docker rm -f  $(docker ps -a -q)

1.12 查看容器的日志

docker logs $ContainerName(或者$ContainerId)

1.13 查看指定容器情况

docker stats $ContainerName(或者$ContainerId)

1.14 查看所有容器情况

docker stats -a

1.15 进入Docker容器内部的bash

docker exec -it $ContainerName /bin/bash

1.16 docker命令图

在这里插入图片描述

Docker打包应用流程

1.17 打包应用工程

如果为springboot工程,按普通mvn方式打包成jar
如果为nodejs前端工程,按正常npm命令打包。

1.18 编写Dockerfile文件

Dockerfile 是一个用来构建镜像的文本文件, 简单来说就是通过此文件定义了打包镜像的过程。

Dockerfile常见命令
在这里插入图片描述

1.19 编写docker-compose文件

Docker-compose.yml文件是docker应用的单机编排文件,他将前面需要通过命令行指定配置参数启动容器应用的繁琐操作中解脱出来。将配置和命令写入到文件中,通过简单的命令一键加载配置并启动容器,同时还支持指定打包镜像。
下面以一个完整的例子进行说明:
本例实现了在docker中启动3个tomcat实例,tomcat01、tomcat02、tomcat03和1个nginx实例,并将通过nginx做负载,在nginx 80端口提供服务。
在这里插入图片描述
运行方式,cd到docker-compose文件目录下,执行以下命令启动或关闭

docker-compose up -d
docker-compose down

1.20 Docker-compose弊端

  1. 单机版编排,无法支持大规模场景下的部署和管理
  2. 无法动态扩容,根据需要来调整实例规模。
    幸运的是,Docker Stack 为解决该问题而生。

1.21 Docker stack介绍

简而言之,docker-compose适用于开发和测试。Docker Stack 则适用于大规模场景和生产环境。Docker Stack 和 Docker Compose 的一个区别是 Stack 不支持构建。这意味着在部署 Stack 之前,所有镜像必须提前构建完成。

1.21.1 启用docker stack

docker swarm init

在这里插入图片描述

1.21.2 运行Docker stack

docker stack deploy -c docker-stack.yml stack

配置文件docker-stack.yml内容如下
在这里插入图片描述
重点是deploy节点,这边定义了服务的副本(replicas)数量为 2, 对于当前服务,升级时Docker 每次会更新2个副本(parallelism)。

1.21.3 Docker stack相关命令

1.21.3.1 查看服务器节点状态

在这里插入图片描述
表示系统只有一个节点,角色为leader

1.21.3.2 查看服务状态

在这里插入图片描述
系统运行2个服务,其中stack_tomcat 副本为3,也就是3个容器实例作为一个集群提供服务。

1.21.3.3 动态扩容

在这里插入图片描述
系统将stack_tomcat扩容为4个实例。

1.21.3.4 其他命令

命令用于从 Swarm 集群中移除服务stack。移除操作执行前并不会进行二次确认。

docker stack rm stack

查看日志信息

docker stack ps --no-trunc stack

管理器节点离开Docker Swarm模式

docker swarm leave –force

普通节点离开Docker Swarm模式

docker swarm leave

好记性不如烂笔头,共勉!

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

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

相关文章

ADB的概念、使用场景、工作原理

文章目录 一、adb概念:Android Debug Bridge,一个可以控制安卓设备的通用命令行工具二、adb的使用场景:操作手机设备、app 自动化测试1.传输文件2.兼容性测试(手机墙)3.云测平台4.测试框架底层封装:APP自动…

柠檬水找零【贪心1】

由于是贪心算法的第一道题,所以先介绍一下贪心算法。 贪心策略:一种解决问题的策略,局部最优->全局最优。(贪婪鼠目寸光) 1、把解决问题的过程分为若干步 2、解决每一步时,都选择当前看起来最优的解法。…

tcp滑动窗口原理

18.1 滑动窗口 我们再来看这个比喻: 网络仅仅是保证了整个网络的连通性,我们我们基于整个网络去传输,那么是不是我想发送多少数据就发送多少数据呢?如果是这样的话,是不是就会像我们的从一个池塘抽水去灌到另外一个…

【Java】微服务——微服务介绍和Eureka注册中心

目录 1.微服务介绍2.服务拆分和远程调用2.1.提供者与消费者 3.Eureka注册中心3.1.Eureka的结构和作用3.2.Eureka的结构3.3.搭建Eureka服务3.3.1.引入eureka依赖3.3.2.编写配置文件 3.4.服务注册及拉1)引入依赖2)配置文件3)启动多个user-servi…

剑指offer——JZ24 反转链表 解题思路与具体代码

一、题目描述与要求 反转链表_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围: …

Mongodb7启动报错排除解决方案

一: 报错信息: [rootwww log]# journalctl -xe -- Unit mongodb.service has begun starting up. /usr/local/mongodb/mongdb7/bin/mongod --help for more information 10月 03 13:47:39 www.yhchange.com systemd[1]: mongodb.service: control process exited, …

10.03

代码 #include <iostream>using namespace std; class cz { private:int num1; //实部int num2; //虚部 public:cz(){}cz(int a,int b):num1(a),num2(b){}cz(const cz &other):num1(other.num1),num2(other.num2){}~cz(){}const cz operator(const cz &othe…

2023年中国BaaS行业发展概况及未来发展趋势分析:未来多链支持和发展将是BaaS平台发展重点方向[图]

BaaS是指将区块链框架嵌入云计算平台&#xff0c;利用云服务基础设施的部署和管理优势&#xff0c;为开发者提供便捷、高性能的区块链生态环境和生态配套服务&#xff0c;支持开发者的业务拓展及运营支持的区块链开放平台。通常情况下&#xff0c;一套完整的 BaaS 解决方案包括…

文件管理:极速复制粘贴,畅享无限次文件管理!

亲爱的用户&#xff0c;您是否经常需要将文件夹里的所有文件进行无限次复制粘贴&#xff0c;但又觉得这个过程繁琐而耗时&#xff1f;现在&#xff0c;我们为您推出一款极速文件管理工具&#xff0c;让您可以轻松实现无限次的文件复制粘贴&#xff0c;让文件管理更加高效畅快&a…

正则验证用户名和跨域postmessage

正则验证用户名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </hea…

剑指offer——JZ6 从尾到头打印链表 解题思路与具体代码

一、题目描述与要求 从尾到头打印链表_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入一个链表的头节点&#xff0c;按链表从尾到头的顺序返回每个节点的值&#xff08;用数组返回&#xff09;。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 < 链表长度 < …

最新SparkAI创作系统V2.6.2/ChatGPT网站系统H5源码+微信公众号版+AI绘画系统源码/支持GPT联网提问/支持Prompt应用

一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图…

2023年中国电动汽车充换电站行业现状分析:随车配建私人充电桩增量持续上升[图]

充电站指为电动汽车提供充电服务的专用场所&#xff0c;由多台集中布置的充电设备以及相关的供电设备、监控设备﹑配套设施等组成。可将充电站规模分为3类&#xff1a;大型充电站、中型充电站和小型充电站。换电站指为电动汽车提供电池更换服务的场所。按换电模式分类&#xff…

掌机小霸王,开源俄罗斯方块小游戏

俄罗斯方块试玩gi PC或手机 点开即玩: https://chvin.github.io/react-tetris/?lanzh-cn 也可以扫码开玩: 实现了数据的持久化 游戏进度的数据可以持久存储到本地浏览器, 即使刷新网页也无需重新开始游戏 小结: 俄罗斯方块属于超级经典的游戏, 感兴趣可以玩一下, 找回一点童…

【算法练习Day10】有效的括号删除字符串中的所有相邻重复项逆波兰表达式求值

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 有效的括号删除字符串中的所…

树莓派4B与STM32串口通信

目录 2上篇文章的补充 2.1 树莓派通信设置 3树莓派与STM32通信 3.1接线准备 3.2代码 3.2.1 STM32代码&#xff1a; 3.2.2树莓派代码&#xff1a; 2上篇文章的补充 2.1 树莓派通信设置 在上篇文章的基础上&#xff0c;进一步的设置 终端输入&#xff1a;sudo minicom …

【Golang】接口 IO操作

文章目录 1、接口1-1、为什么要有接口1-2、接口的定义1-3、接口的实现条件1-4、类型与接口的关系1-5、空接口 2、IO操作2-1、Reader2-2、Writer2-3、bufio2-4、ioutil工具包2-5、实现一个cat命令 1、接口 1-1、为什么要有接口 在Go语言中接口&#xff08;interface&#xff0…

Flink--7、窗口(窗口的概念、分类、API、分配器、窗口函数)、触发器、移除器

星光下的赶路人star的个人主页 内心的平静始于不再让他人掌控你的感情 文章目录 0、前言1、窗口&#xff08;Window&#xff09;1.1 窗口的概念1.2 窗口的分类1.3 窗口API概览1.4 窗口分配器&#xff08;Window Assigner&#xff09;1.4.1 时间窗口1.4.2 计数窗口 1.5 窗口函数…

什么是Vue的JSX语法?如何使用JSX语法

Vue的JSX语法&#xff1a;更接近JavaScript的模板语言 Vue.js是一个流行的JavaScript框架&#xff0c;用于构建交互式的Web应用程序。虽然Vue通常使用模板语法来构建用户界面&#xff0c;但它也提供了JSX语法的支持&#xff0c;使开发人员能够更接近JavaScript的表达方式来构建…