Docker的安装和使用

目录

  • Docker的安装和使用
    • 移除旧版本docker
    • 配置docker yum源
    • 安装 最新 docker
    • 启动& 开机启动docker; enable + start 二合一
    • 配置加速
  • Docker相关命令
    • 查看下载相关命令
    • Docker启动相关命令
    • 上传Docker Hub
    • 加载删除镜像
  • Docker存储
      • 卷映射命令
  • Docker 网络
  • Docker Compose
  • compose.yaml
  • Dockerfile

Docker的安装和使用

移除旧版本docker

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

配置docker yum源

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 最新 docker

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动& 开机启动docker; enable + start 二合一

systemctl enable docker --now

配置加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker相关命令

查看下载相关命令

#查看运行中的容器
docker ps
#查看所有容器
docker ps -a
#搜索镜像
docker search nginx
#下载镜像
docker pull nginx
#下载指定版本镜像
docker pull nginx:1.26.0
#查看所有镜像
docker images
#删除指定id的镜像
docker rmi e784f4560448

Docker启动相关命令

#运行一个新容器
docker run nginx
#停止容器
docker stop keen_blackwell
#启动容器
docker start 592
#重启容器
docker restart 592
#查看容器资源占用情况
docker stats 592
#查看容器日志
docker logs 592
#删除指定容器
docker rm 592
#强制删除指定容器
docker rm -f 592
# 后台启动容器
docker run -d --name mynginx nginx
# 后台启动并暴露端口
docker run -d --name mynginx -p 80:80 nginx
# 进入容器内部
docker exec -it mynginx /bin/bash

上传Docker Hub

# 登录 docker hub
docker login
# 重新给镜像打标签
docker tag mynginx:v1.0 leifengyang/mynginx:v1.0
# 推送镜像
docker push leifengyang/mynginx:v1.0

加载删除镜像

# 提交容器变化打成一个新的镜像
docker commit -m "update index.html" mynginx mynginx:v1.0
# 保存镜像为指定文件
docker save -o mynginx.tar mynginx:v1.0
# 删除多个镜像
docker rmi bde7d154a67f 94543a6c1aef e784f4560448
# 加载镜像
docker load -i mynginx.tar 

Docker存储

两种方式,注意区分:

  • 目录挂载: -v /app/nghtml:/usr/share/nginx/html
  • 卷映射:-v ngconf:/etc/nginx
  • 目录挂载可以理解为弄一个空文件,指向了对应的目录,如Nginx,将写好的放在/app/nghtml,就会放在/usr/share/nginx/html下面

  • 卷映射可以理解为复制Nginx的配置到前面的地址,这样才能启动

  • 卷映射会被放置在/var/lib/docker/volumes/<配置的名字,这里是ngconf>

docker run -d -p 99:80 \
-v /app/nghtml:/usr/share/nginx/html \
-v ngconf:/etc/nginx \
--name app03 \
nginx

卷映射命令

# 查看
docker volume ls
# 自己新增卷
docker volume create name
# 查看卷的详情
docker volume inspect ngconf

Docker 网络

docker为每个容器分配唯一ip,使用容器ip+容器端口相互访问

ip地址可能会变化,所以需要自定义网络。可以理解为配置一个域名就可以对ip进行映射访问

#自定义网络
docker network create mynet
# 列举网络
docker network ls
#主节点
docker run -d -p 80:80 --network mynet --name app01 nginx
docker run -d -p 88:80 --network mynet --name app02 nginx# 进入app01
docker exec -it -app01 bash
# 访问app02,注意要访问80端口,因为容器内部暴露的是80
curl http://app02:80

Docker Compose

通过yaml文件一键安装配置相关容器,并直接启动

# 根据yaml文件,一键下载配置上线
docker compose up -d
# 停止
docker compose down
# 如果不指定文件,默认就会找compose.yaml
docker compose -f aabbcc.yaml up -d
# 如果想彻底删除卷和镜像
docker compose down --rmi all -v

compose.yaml

去官网了解书写规范

# name 本次部署的应用名字
# services 需要启动的应用服务
# network 网络 如果使用,需要在下面指定网络networks
# ports 端口
# image 镜像
# environment 环境变量
# volumes 目录挂载 如果使用了,需要在下面指定volumes
# restart 开机自启
# container_name 容器名,如果不指定的话会默认用自己写的mysql...
# depends_on 依赖 例如这里的WordPress依赖MySQL
name: myblog
services:mysql:container_name: mysqlimage: mysql:8.0ports:- "3306:3306"environment:- MYSQL_ROOT_PASSWORD=123456- MYSQL_DATABASE=wordpressvolumes:- mysql-data:/var/lib/mysql- /app/myconf:/etc/mysql/conf.drestart: alwaysnetworks:- blogwordpress:image: wordpressports:- "8080:80"environment:WORDPRESS_DB_HOST: mysqlWORDPRESS_DB_USER: rootWORDPRESS_DB_PASSWORD: 123456WORDPRESS_DB_NAME: wordpressvolumes:- wordpress:/var/www/htmlrestart: alwaysnetworks:- blogdepends_on:- mysqlvolumes:mysql-data:wordpress:networks:blog:

Dockerfile

自定义自己的镜像

# FROM 指定镜像基础环境
# LABEL 自定义标签
# COPY 复制文件到镜像
# ENTRYPOINT 复制固定启动命令
FROM openjdk:17LABEL author=leifengyangCOPY app.jar /app.jarEXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]

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

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

相关文章

计算机网络 ——数据链路层(广域网)

计算机网络 —— 广域网 什么是广域网PPP协议PPP协议的三个部分PPP协议的帧格式 HDLC协议HDLC的站HDLC的帧样式 PPP和HDLC的异同 我们今天来看广域网。 什么是广域网 广域网&#xff08;Wide Area Network&#xff0c;简称WAN&#xff09;是一种地理覆盖范围广泛的计算机网络…

Redis篇 list类型在Redis中的命令操作

list在redis基本的命令 一.基本命令1.lpush和range2.lpushx rpushx3.lpop rpop4.lindex linsert llen5.lrem6.ltrim lset7.blpop brpop 一.基本命令 list在redis中相当于数组或者顺序表. 1.lpush和range 2.lpushx rpushx 3.lpop rpop 4.lindex linsert llen 如果要插入的列表中…

java自动化测试-接口响应内容处理技巧:json转DTO

背景:某个交易自动化案例需要检查关联系统的交易结果&#xff0c;可以通过接口请求结果来断言。 一般处理是转成json格式一层层获取自己想要的&#xff0c;但这样子很麻烦而且容易记错层级或字段。这里介绍一种非常通用且方便的方式。 假设接口返回数据如下: { “itemId”:345…

【Kubernetes】9-Pod控制器

一、什么是 pod 的控制器 Pod控制器&#xff0c;又称之为工作负载&#xff08;workload&#xff09;&#xff0c;是用于实现管理pod的中间层 确保pod资源符合预期状态&#xff1b;pod的资源故障时会进行重启&#xff1b; 当重启策略无效时&#xff0c;则会重新新建pod的资源 二…

一维时间序列信号的小波时间散射变换(MATLAB 2021)

小波散射变换的目的在于获取第一层次的特征信息&#xff0c;即免疫平移、轻微形变的信息。而低通的滤波器能够获取输入信号的概貌&#xff0c;获取反映其整体大尺度特征的信息&#xff0c;以图像为例&#xff0c;由低通滤波器选取的信号对于图像的平移、伸缩、旋转等局部变化有…

Mysql 常用命令 详细大全【分步详解】

1、启动和停止MySQL服务 // 暂停服务 默认 80 net stop mysql80// 启动服务 net start mysql80// 任意地方启动 mysql 客户端的连接 mysql -u root -p 2、输入密码 3、数据库 4、DDL&#xff08;Data Definition Language &#xff09;数据 定义语言, 用来定义数据库对象(数…

[开发|java] java在windows中环境变量配置

系统环境 系统版本&#xff1a;windows10 配置环境变量 配置Java开发环境在Windows系统中通常涉及两个关键环境变量的设置&#xff1a;JAVA_HOME 和 Path。以下是详细的步骤&#xff1a; 设置JAVA_HOME: 打开“控制面板”或通过搜索栏找到“系统”设置。在系统设置中&…

五、身份与访问管理—身份与访问管理基础与访问控制模型(CISSP)

目录 1.访问控制概述 1.1 访问控制步骤 1.2 口令管理(Password Management) 1.3 生物技术(Biometrics)

如何查看当前系统中哪些端口被占用了?

在 Mac 系统中&#xff0c;你可以使用 lsof 命令来查看哪些端口被占用。以下是具体的步骤&#xff1a; 打开终端。输入以下命令并按回车&#xff1a; sudo lsof -i -P -n | grep LISTEN 这个命令会列出所有正在监听的端口以及它们的使用情况。-i 选项表示列出所有网络连接&a…

linux指令-sed

sed 是一个流编辑器&#xff0c;用于对输入流&#xff08;或文件&#xff09;进行基本的文本转换。以下是 sed 命令的详细输出说明文档&#xff1a; 1. 基本语法 sed [OPTIONS]... [SCRIPT] [INPUTFILE...] OPTIONS&#xff1a;可选的命令行选项&#xff0c;如 -i 用于直接修…

空间不够用了怎么办

空间告急啊哥们 整理一下清理空间有用的一些blog吧。 【linux】公共服务器如何清理过多的.cache缓存 linux根目录空间不足&#xff0c;追加空间到根目录下 【linux】linux磁盘空间 目录查看清理 和 文件查看清理

simulink如何配置自动代码生成

simulink如何配置我们的自动代码生成 仿真时间设置我们仿真我们这个模型的一个时间&#xff0c;目前默认它是10秒。如果把它改成“INF”&#xff0c;它就是会一直仿真。 求解器选择&#xff0c;因为我们使用的是嵌入式代码&#xff0c;因此我们一般嵌入式是一个数字量。所以选…

【AI大模型】Transformers大模型库(三):特殊标记(special tokens)

目录​​​​​​​ 一、引言 二、特殊标记&#xff08;special tokens&#xff09; 2.1 概述 2.2 主要功能 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服…

RK3568技术笔记之二 SAIL-RK3568开发板介绍

开发板是我们自己的&#xff0c;后面我用开发板和工控机来做技术笔记。不用多讲。我先把核心板和开发板规格书搬过来&#xff0c;这篇文章里都是自己的知识产权&#xff0c;所以就不标准引用来源了。 先看看核心板的规格书吧。 再来一下开发板的规格书 看完规格书&#xff0c;…

用cocos2d-python绘制游戏开发的新篇章

用cocos2d-python绘制游戏开发的新篇章 第一部分&#xff1a;背景 在游戏开发的世界中&#xff0c;寻找一个强大而灵活的框架至关重要。cocos2d-python是一个Python游戏开发框架&#xff0c;它提供了一套丰富的功能&#xff0c;用于创建2D游戏、图形和交互式应用。基于流行的c…

如何在 Java 中使用 JOptionPane 显示消息对话框

在 Java 开发中&#xff0c;JOptionPane 是一个非常实用的类&#xff0c;可以用来显示各种类型的对话框&#xff0c;例如信息对话框、警告对话框、错误对话框等。今天&#xff0c;我们将深入探讨如何使用 JOptionPane.showMessageDialog 方法来显示消息对话框&#xff0c;以及如…

完美的移动端 UI 风格

完美的移动端 UI 风格

webgl_decals

ThreeJS 官方案例学习&#xff08;webgl_decals&#xff09; 1.效果图 2.源码 <template><div><div id"container"></div></div> </template> <script> // 光线投射相关代码 https://threejs.org/docs/index.html#api/z…

干货满满!Stable Diffusion 从入门到精通之提示词手册,免费分享,自学转行,零基础首选!

Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度&#xff0c;文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好。本文从“如何写好提示词”出发&#xff0c;从提示词构成、调整规则和 AIGC辅助工具等角度&#xff0c;对文生图的提示词输入进行…

模式识别涉及的常用算法

一、线性回归 1.算法执行流程&#xff1a; 算法的执行流程可以简述如下&#xff1a; 导入必要的库&#xff1a; 导入NumPy库&#xff0c;用于数值计算。导入Matplotlib库&#xff0c;用于数据可视化。导入Pandas库&#xff0c;用于数据处理&#xff08;尽管在这个例子中&#…