微服架构基础设施环境平台搭建 -(五)Docker常用命令

news2024/11/24 17:52:42

微服架构基础设施环境平台搭建 -(五)Docker常用命令

本文主要列出了Docker常用的命令

微服架构基础设施环境平台搭建 系列文章


微服架构基础设施环境平台搭建 -(一)基础环境准备
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建
微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
微服架构基础设施环境平台搭建 -(五)Docker常用命令

目录

  • 微服架构基础设施环境平台搭建 -(五)Docker常用命令
  • 一、Docker命令
    • 1、重启docker服务
    • 2、Docker镜像操作命令
    • 3、Docker端口操作命令
    • 4、Docker挂载操作
    • 5、Docker日志操作
    • 6、Docker容器操作
  • 二、docker-compose命令
  • 三、与镜像仓库相关命令
  • 四、Dockerfile
    • 1、Dockerfile文件
    • 2、Docker镜像编译命令
    • 1、下载mysql镜像
    • 2、启动镜像
    • 3、配置mysql参数
    • 4、将my.cnf上传到mysql_5.7容器中
    • 5、重新构建新的mysql镜像文件
    • 6、重新启动新的镜像
    • 6、将打包的hxyl_mysql:5.7镜像上传Harbor私仓

一、Docker命令

下面是关与Docker常用命令,与当前部署操作无关,不需要在服务器上执行,不需要了解的可以跳过


1、重启docker服务

systemctl restart docker

2、Docker镜像操作命令

# 下载镜像
docker pull name:tag

# 查看本地已下载
docker images

# 删除镜像
docker rmi imageId

# 镜像busybox工具
docker run -it --name test-nginx2 busybox sh
docker run -it --name test-nginx2 --link test-nginx busybox sh

3、Docker端口操作命令

# 容器端口映射
docker run --name test-nginx -d -p 8080:80 nginx
# 主机网络映射,将容器的所有端口全部映射到宿主机,此方法未做宿主机与容器隔离
docker run --rm --network host --name test-nginx2 nginx

说明:


端口映射
-p [宿主机端口]:[容器里的端口],例如: -p 8080:80
-p [宿主机起始端口-宿主机结束端口]:[容器里的起始端口-容器里的结束端口],例如: -p 80-90:80-90
–rm 参数是容器退出后自动删除

4、Docker挂载操作

docker run --name test-nginx2 -d -p 8081:80 -v /data:/usr/share/nginx/html nginx

说明:


目录映射参数
-v [宿主机目录]:[容器里的目录]

5、Docker日志操作

docker logs -f test-nginx

说明:


实时输出Docker容器的日志
docker logs -f 容器ID

6、Docker容器操作

# 查看本地docker容器
docker ps -a

# 查看docker详细信息,包括网络
docker inspect test-nginx

# 进入容器执行命令
docker exec -it test-nginx sh

# 删除容器
docker rm -f test-nginx

说明:


-i 标准输入
-t 终端


二、docker-compose命令

相关操作


# 进入容器执行命令
# 构建镜像
docker-compose build .

# 启动服务
docker-compose up -d

# 停止服务、删除所有的镜像
docker-compose down --rmi all -v

# 查看日志
docker-compose logs -f

三、与镜像仓库相关命令

相关操作


# 登录
docker login 192.168.2.146

# 上传至Harbor公开仓库
docker tag nginx:latest 192.168.2.146/pub/nginx:0.0.1
docker push 192.168.2.146/pub/nginx:0.0.1

# 上传至Harbor私有仓库
# 私有仓库的上传和下载都需要先登录,公有库只有上传需要先登录
docker tag mysql:5.7 192.168.2.146/prv/mysql:0.0.1
docker push 192.168.1.146/prv/mysql:0.0.1

# 退出Harbor
docker loginout 192.168.1.146

四、Dockerfile

1、Dockerfile文件

# 制作base image 基础镜像,尽量使用官方的image作为基础镜像
FROM moxm/java:1.8-full

# 容器元信息,帮助信息,类似于注释
LABEL version="1.0"
LABEL maintainer="作者"

# 执行系统命令,每个RUN都会使镜像增加一层,所以要避免无用的分层,多条命令用反斜线换行,合成一条命令
RUN yum update && yum install -y vim \
    nginx

# 改变目录,相当于cd命令,如果目录不存在会自动创建并改变为当前目录
WORKDIR /test

# ADDCOPY要优先使用COPYADD除了复制的功能还有解压功能
# 将当前目录的app.tar.gz添加到容器/test/目录下,并解压
ADD app.tar.gz /test
# 将当前目录下复制到容器/test/目录下
COPY app.jar /test 

# 环境变量,设置一个mysql的常量
ENV MYSQL_VERSION 5.7

# 声明容器对外暴露8080端口
EXPOSE 8080

2、Docker镜像编译命令

# 执行当前目录下的Dockerfile中的编译执令,并输出为Docker镜像,名称为-t参数指定的名称
docker build -t 镜像名称 .

五、将官方mysql镜像参数修改后重新构建成新的镜像

1、下载mysql镜像

# 下载mysql5.7官方镜像
docker pull mysql:5.7
# 显示本地的所有镜像
docker images

在这里插入图片描述

2、启动镜像

# 启动mysql:5.7镜像,并以名称为“mysql_5.7”的容器运行
# 将容器的3306的端口映射到宿主机的3306端口
# 将容器的/var/lib/mysql(mysql在容器中的数据文件存放目录)
docker run -itd --name mysql_5.7 -p 3306:3306 -v /nfsdata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

# 查看当前系统中正在运行的容器
docker ps -a

在这里插入图片描述

3、配置mysql参数

cat > my.cnf << EOF
[client] 
default-character-set=utf8mb4

[mysql]
port = 3306
default-character-set=utf8mb4
 
[mysqld]
port = 3306
default_storage_engine=InnoDB
datadir = /var/lib/mysql
character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
max_connections = 2000
max_allowed_packet = 128M
innodb_file_per_table = 1
tmp_table_size = 134217728
max_heap_table_size = 134217728

lower_case_table_names=1

log-bin = mysql-bin
max_binlog_size = 1024M
expire_logs_days = 1
log_slave_updates = 1
server-id = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF

4、将my.cnf上传到mysql_5.7容器中

# 将my.cnf上传到mysql_5.7容器中
docker cp my.cnf mysql_5.7:/etc/my.cnf

# 进入容器mysql_5.7的命令行
docker exec -it mysql_5.7 sh
# 查看my.cnf是否修改成功
cat /etc/my.cnf

在这里插入图片描述

5、重新构建新的mysql镜像文件

# 停止正在运行中的容器mysql_5.7
docker stop mysql_5.7
# 查看容器mysql_5.7的状态
docker ps -a

# 将一个容器进行提交成一个新的镜像副本
# docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]
docker commit mysql_5.7 hxyl_mysql:5.7
docker images

在这里插入图片描述

6、重新启动新的镜像

# 启动hxyl_mysql:5.7镜像,并以名称为“hxyl_mysql_5.7”的容器运行
# 将容器的3306的端口映射到宿主机的3306端口
# 将容器的/var/lib/mysql(mysql在容器中的数据文件存放目录)
docker run -itd --name hxyl_mysql_5.7 -p 3306:3306 -v /nfsdata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 hxyl_mysql:5.7

在这里插入图片描述
在这里插入图片描述

6、将打包的hxyl_mysql:5.7镜像上传Harbor私仓

说明:
关与Docker镜像私仓Harbor的搭建请参见
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

# 登录Harbor私仓
docker login 192.168.2.146

# 将hxyl_mysql:5.7上传至Harbor
docker tag hxyl_mysql:5.7 192.168.2.146/pub/hxyl_mysql:5.7
docker push 192.168.2.146/pub/hxyl_mysql:5.7

# 退出登录Harbor
docker logout 192.168.2.146

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

富文本输出如何避免XSS

有时网站为了美观&#xff0c;会允许用户输入一些富文本&#xff0c;这样在显示的时候&#xff0c;就可以显示的更友好。虽然在输入富文本的时候在客户端进行了控制&#xff0c;但是&#xff0c;仍然难易避免一些攻击者通过抓包篡改数据绕过客户端的控制。因此&#xff0c;在服…

【飞行棋】多人游戏-微信小程序开发流程详解

可曾记得小时候玩过的飞行棋游戏&#xff0c;是90后的都有玩过吧&#xff0c;现在重温一下&#xff0c;这是一个可以二到四个人参与的游戏&#xff0c;通过投骰子走棋&#xff0c;一开始靠运气&#xff0c;后面还靠自己选择&#xff0c;谁抢占先机才能赢&#xff0c;还可以和小…

Redis 三大特殊数据类型常见命令

Geospatial 朋友的定位&#xff0c;附近的人&#xff0c;打车距离计算 底层是 Zset&#xff0c;即可以使用Zset的命令操作Geospatial Redis3.2 开始支持的 1.添加地理位置 两极无法添加经度&#xff1a;-180 ~ 180&#xff08;度&#xff09;纬度&#xff1a;-85.05112878 ~ 8…

一、RestTemplate的使用

目录 1、新建项目springcloud&#xff08;File--->New--->Project&#xff09; 使用maven quickstart快速新建Maven项目 输入项目名称和Maven信息 确认Maven目录、配置文件、本地仓库&#xff0c;Finish即可 2、创建聚合项目springcloud-member、springcloud-order(项…

【人力资源管理】第2集 免费开源ERP: Odoo 16 Recruitment招聘管理 构建一体化企业人力资源管理

文章目录 前言一、概览二、主要功能1.组织空缺职位和职位申请2.追踪工作机会&#xff08;查看哪个渠道收到的申请最多&#xff09;3.定制您的招聘流程4.集成文档&#xff08;定义您自己的文件管理流程&#xff09;5.与Odoo应用程序完全集成 总结 前言 轻松处理您的招聘流程。 …

C++ 中到底是应该include .h文件还是应该include .cpp文件

在阅读一个较大的解决方案中&#xff0c;对于其他文件夹下的.h和.cpp文件&#xff0c;有时候#include“XXX.h”文件&#xff0c;有时候是#include“XXX.cpp”文件&#xff0c;而且二者还不能更换。下面就好好分析一下他们二者的区别。 测试 测试&#xff1a;XXX.h和XXX.cpp…

连接器:一种可靠耐用、节约成本的同为科技(TOWE)工业连接器

随着我国经济建设水平的飞速发展&#xff0c;工业连接器被广泛应用于工业、化工、机场、船舶、码头、建筑、铁路、医疗、会展、商业演出等领域。工业连接器的作用是用于连接一个电路导体与另一个电路导体、或一个传输元件与另一个传输元件的装置&#xff0c;并且为两个电路子系…

知识变现海哥:六种常见的知识变现渠道

什么是知识变现&#xff1f;就是用你所会的知识技能&#xff0c;在网上进行展示&#xff0c;吸引人们为其付钱。互联网发展到今天&#xff0c;我们可以看到它各方面已经逐渐完善了&#xff0c;但曾经在互联网上的不花钱的知识&#xff0c;在今天却要为其花费金钱。在此基础上&a…

CCSA TC1演讲分享 | 全域智能,构建平台化生态

日前&#xff0c;中国通信标准化协会&#xff08;CCSA&#xff09;成功召开互联网与应用技术工作委员会&#xff08;TC1&#xff09;第四十次全会&#xff0c;全会期间&#xff0c;TC1 WG7 IT内控与审计技术标准工作组举办了第3次工作组会议。此次会议重点讨论了各项标准文稿及…

微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台

微服架构基础设施环境平台搭建 -&#xff08;四&#xff09;在Kubernetes集群基础上搭建Kubesphere平台 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台&#xff0c;以微服务为服务中心&#xff0c;在此基础之上构建业务中台&#xff0c;并通过Jekins自动…

Docker安装及容器安装

Docker安装及容器安装 一、Docker简单介绍 1、Docker是什么 Docker是基于Go语言实现的云开源项目。 Docker是一个开源的应用容器引擎&#xff0c;是容器技术的一种&#xff0c;采用Go编程语言编写。虽然 Docker把容器技术推向了巅峰&#xff0c;但其实&#xff0c;还有其他容…

蓝牙智能升降桌解决方案介绍

传统桌子在办公和学习中具有很大的普及度&#xff0c;但是长时间久坐却会对人体造成可怕的危害。由于不合理的坐姿、长时间久坐等习惯&#xff0c;不仅影响血液循环,让人体感到不适,还会出现视力、颈椎、腰椎、心脏等一系列健康问题。此外&#xff0c;传统桌子通常是固定高度且…

【C++进阶2--多态】面向对象三大特性之一,多种形态像魔法?

今天&#xff0c;带来C多态的讲解。 多态和继承并用&#xff0c;能产生“魔法般的效果”。 *文中不足错漏之处望请斧正&#xff01; 见见多态 是什么 使得父类指针或引用有多种形态。 怎么使它有多种形态呢&#xff1f;咱们先见见猪跑。 见见猪跑 class Base { public:v…

第05章_排序与分页

第05章_排序与分页 1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC&#xff08;ascend&#xff09;: 升序DESC&#xff08;descend&#xff09;:降序 ORDER BY 子句在SELECT语句的结尾。 1.2 单列排序 SELECT last_name, job_id, department_id, hire_date FROM …

Java基础学习(15)

Java基础学习 一、IO流进阶1.1 缓冲流1.1.1字节缓冲流1.1.2 字符缓冲流 1.2 转换流1.3 序列流1.4 反序列化流 /对象操作输入流1.4.1 序列化流/反序列化流的细节汇总 1.5 打印流1.5.1 字节打印流1.5.2 字符打印流 1.6 解压流、压缩流1.7 Commons-io1.8 hutool工具包 一、IO流进阶…

【C#】RemoveAt索引越界问题

系列文章 【C#】单号生成器&#xff08;编号规则、固定字符、流水号、产生业务单号&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器&#xff08;开始日期、结束日期&#xff09; 本文链接&#xff1a;h…

使用FFMPEG和SDL2实现音视频同步的简易视频播放器

程序框架 由于之前都是针对FFMPEG某一个功能做的测试和学习。这里我简单做了一个视频播放器&#xff0c;并简单做了音视频同步。在此记录大致过程。 大致框架如下&#xff1a; 主线程 1.加载视频文件&#xff0c;查找音视频流信息 2.初始化音视频解码器 3.初始化SDL并设置…

题解校验码—CRC循环校验码与海明校验码

码距 一个编码系统的码距是任意两个码字的最小距离。 例如个编码系统采用三位长度的二进制编码&#xff0c;若该系统有四种编码分别为&#xff1a;000&#xff0c;011&#xff0c;100&#xff0c;111&#xff0c;此编码系统中000与111的码距为3&#xff1b;011与000的码距为2…

POE:性价比最高的 AI 整合网站

创作不易&#xff0c;如果本文对你有帮助&#xff0c;胖友记得一键三连 &#x1f62d;。更多 AI 优质内容推荐请关注主页 “AI” 专栏&#xff0c;笔者会不定期更新觉得自己用下来还不错的 AI 相关产品。 1.介绍 Poe 是一款同时整合了 ChatGPT、Sage、GPT-4、Claude、Claude-in…

经典神经网络(2)AlexNet及其在Fashion-MNIST数据集上的应用

2、深度卷积神经网络AlexNet ImageNet 数据集&#xff1a;一个开源的图片数据集&#xff0c;包含超过 1400万张图片和图片对应的标签&#xff0c;包含2万多个类别。 自从2010 年以来&#xff0c;ImageNet 每年举办一次比赛&#xff0c;即&#xff1a;ImageNet 大规模视觉识别挑…