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

文章目录

  • 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-composesudo 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.mzph.cn/news/94137.shtml

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

相关文章

解决nvm切换node版本失败的终极办法-秒杀网上99%的水文

nvm是一款强大的node多版本管理器,可以轻易选择你需要的node版本,这对win7平台简直就是超好的福音:可以突破node 14.15以上的安装限制。 但是nvm安装有一个巨大的坑点:nvm use 版本号以后,并没有生效,nvm …

uni-app:js修改元素样式(宽度、外边距)

效果 代码 1、在<view>元素上添加一个ref属性&#xff0c;用于在JavaScript代码中获取对该元素的引用&#xff1a;<view ref"myView" id"mybox"></view> 2、获取元素引用 &#xff1a;const viewElement this.$refs.myView.$el; 3、修改…

认识柔性数组

在C99中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做柔性数组成员 限制条件是&#xff1a; 结构体中最后一个成员未知大小的数组 1.柔性数组的形式 那么我们怎样写一个柔性数组呢 typedef struct st_type {int i;int a[0];//柔性数组成员 }ty…

HTTP协议,请求响应

、概述 二、HTTP请求协议 三、HTTP响应协议 四、请求数据 1.简单实体参数 RequestMapping("/simpleParam")public String simpleParam(RequestParam(name "name" ,required false ) String username, Integer age){System.out.println (username "…

免杀对抗-DLL劫持免杀

C&Py-DLL劫持-语言-调用加载 1.使用visual studio创建项目 2.将文件名重命名为.c后缀 3.将如下加载器代码生成dll文件 加载器代码&#xff1a; #include "pch.h" #include <Windows.h> #include <stdio.h> #include <string.h>#pragma comment…

【C语言】汉诺塔 —— 详解

一、介绍 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大焚天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。 大焚天命令婆罗门把圆盘从下面开始按…

Pikachu靶场——不安全的文件下载(Unsafe Filedownload)

文章目录 1. Unsafe Filedownload1.1 Unsafe Filedownload1.1.1 源代码分析1.1.2 漏洞防御 1.2 不安全的文件下载防御措施 1. Unsafe Filedownload 不安全的文件下载概述&#xff1a; 文件下载功能在很多web系统上都会出现&#xff0c;一般我们当点击下载链接&#xff0c;便会…

【正点原子】无法打开 源 文件 “linux/time_types.h“ (dependency of “linux/ide.h“)

问题描述 在VS code中些驱动代码时显示&#xff1a; 检测到 #include 错误。请更新 includePath。已为此翻译单元(/home/alientek/linux/atk-mp1/Linux_Drivers/2_LED/led.c)禁用波形曲线。C/C(1696) 无法打开 源 文件 "linux/time_types.h" (dependency of "…

性格敏感怎么办?改变性格敏感的方法有哪些?

有这么一群人&#xff0c;他们的情绪很容易受到外界的影响&#xff0c;就像一汪宁静的湖水&#xff0c;被风轻易地吹出皱纹。他们有着高度敏感的神经&#xff0c;外界稍微一点风吹草动&#xff0c;就会牵动他们紧张的情绪。 他们的思维就像脱缰的野马&#xff0c;生活中任何一…

第15届蓝桥STEMA测评真题剖析-2023年8月20日Scratch编程中级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第155讲。 第15届蓝桥第1次STEMA测评&#xff0c;这是2023年8月20日举办的STEMA&#xff0c;比赛仍然采取线上形式。这…

UWB高精度定位系统:引领精准定位技术的新纪元

在现代社会中&#xff0c;精准定位技术对于各行各业都至关重要。为了满足对高精度定位的需求&#xff0c;超宽带&#xff08;Ultra-Wideband, UWB&#xff09;技术应运而生。UWB高精度定位系统以其出色的定位精度和多样化的应用领域而备受关注。本文将深入探讨UWB高精度定位系统…

MAC手动修复『已损坏』问题 终端运行命令报错处理

安装一些第三方软件会出现已损坏的报错提醒&#xff0c;需要用命令sudo xattr -rd com.apple.quarantine进行修复&#xff0c;但是终端提示命令错误&#xff0c;怎么版 错误有几种&#xff1a; No module named ‘pkg_resources’ 这是mac电脑上python2&#xff0c;python3并…

分布式操作系统

分布式操作系统属于多机操作系统&#xff0c;能够统一一套计算机集群&#xff0c;相比单机系统&#xff0c;分布式操作系统在管理计算机集群方面要简单很多。各种分布式的基础功能&#xff0c;都集中到分布式操作系统来实现&#xff0c;而不是单机系统的应用软件来实现&#xf…

2023最新简易ChatGPT3.5小程序全开源源码+全新UI首发+实测可用可二开(带部署教程)

源码简介&#xff1a; 2023最新简易ChatGPT3.5小程序全开源源码全新UI首发&#xff0c;实测可以用&#xff0c;而且可以二次开发。这个是最新ChatGPT智能AI机器人微信小程序源码&#xff0c;同时也带部署教程。 这个全新版本的小界面设计相当漂亮&#xff0c;简单大方&#x…

springboot 简单配置mongodb多数据源

准备工作&#xff1a; 本地mongodb一个创建两个数据库 student 和 student-two 所需jar包&#xff1a; # springboot基于的版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…

Facebook Delos 中的虚拟共识协议

背景 Facebook 的软件系统栈一般包括两层&#xff1a;上层是数据平面&#xff0c; 下层是控制平面。 facebook software stack 数据平面包括大量的服务&#xff0c;他们需要存储和处理海量数据。控制平面用来支撑数据平面&#xff0c;起到一些控制作用&#xff1a;调度、配置…

【React】组件实例三大属性state、props、refs

state React 把组件看成是一个状态机&#xff08;State Machines&#xff09;。通过与用户的交互&#xff0c;实现不同状态&#xff0c;然后渲染 UI&#xff0c;让用户界面和数据保持一致。 React 里&#xff0c;只需更新组件的 state&#xff0c;然后根据新的 state 重新渲染用…

Linux实用操作(固定IP、进程控制、监控、文件解压缩)

目录 一、快捷键 1、ctrl c强制停止 2、ctrl d退出或登出 3、历史命令搜索history 4、光标移动快捷键 5、清屏 二、软件安装 1、CentOS的yum命令 2、Ubantu的apt命令 三、systemctl命令 四、软连接 五、日期、时区 1、date命令 2、修改Linux时区为东八区 3、nt…

车牌文本检测与识别:License Plate Recognition Based On Multi-Angle View Model

论文作者&#xff1a;Dat Tran-Anh,Khanh Linh Tran,Hoai-Nam Vu 作者单位&#xff1a;Thuyloi University;Posts and Telecommunications Institute of Technology 论文链接&#xff1a;http://arxiv.org/abs/2309.12972v1 内容简介&#xff1a; 1&#xff09;方向&#x…

2023蓝帽杯半决赛电子取证+CTF部分题解

文章目录 电子取证123456789101112131415 CTFWeb | MyLinuxBotWeb | AirticleShareCrypto | ezrsaPwn | AdminPwn | uafmisc|排排坐吃吃果果 电子取证 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CTF Web | MyLinuxBot Web | AirticleShare import requests import times reques…