Docker的安装及使用摘要

本文分享一些在docker安装及使用过程中的部分要点,会持续更新,供参考。

1. docker安装

1.1 在ubuntu系统安装

安装指定版本的docker。

# 更新时间:2024年6月23日

# docker官方的源无法安装,采用阿里云的源安装docker
# 更新软件包索引:
sudo apt-get update
# 安装依赖包以使apt能够通过HTTPS使用仓库:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# 添加阿里云Docker官方的GPG密钥:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 向sources.list中添加Docker仓库地址:
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 再次更新软件包索引:
sudo apt-get update
# 安装最新版本或指定版本的Docker CE:
sudo apt-get install docker-ce
# 指定版本:docker-ce=<VERSION_STRING>
# 要替换<VERSION_STRING>为23.0.1版本的实际版本字符串,可以通过以下命令查找可用版本:
apt list -a docker-ce
# 找到23.0.1对应的版本字符串后,将其替换到上述命令中。
# 输出如下:
# ...
# docker-ce/jammy 5:23.0.1-1~ubuntu.22.04~jammy amd64
# docker-ce/jammy 5:23.0.0-1~ubuntu.22.04~jammy amd64
# ...
# 
# 选择字符串:5:23.0.1-1~ubuntu.22.04~jammy

sudo apt-get install docker-ce=5:23.0.1-1~ubuntu.22.04~jammy docker-ce-cli=5:23.0.1-1~ubuntu.22.04~jammy

1.2 在centos系统安装

安装指定版本的docker。

# 更新时间:2024年7月2日

# 卸载旧版本的 Docker(如果有)
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 更新yum源
sudo yum update -y

# 安装docker依赖包
sudo yum install -y yum-utils

# 设置docker仓库源,阿里云
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新缓存
sudo yum makecache fast

# 安装
# 指定版本
# sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
yum install docker-ce-23.0.1 docker-ce-cli-23.0.1 containerd.io

# 启动Docker服务
sudo systemctl start docker

# 使Docker服务开机自启
sudo systemctl enable docker

# 验证Docker安装
sudo docker --version

1.3 镜像仓库设置

镜像使用优先级:官方地址 > 镜像地址 > 阿里云地址

2024年6月8日:国内大量docker镜像站被关闭。

以下可参考:

小陈的容器镜像站 (qq.com)

使用 Docker Hub 官方镜像,可以加入到 daemon.json 文件中。

这样就可以使用正常的命令进行拉取镜像,系统会自动使用代理进行拉取。

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

2. 常用指令

docker run 安装
docker ps 查看当前运行中的容器
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
# 删除容器前,一定要先停止容器

docker image 镜像相关操作
docker images 查看镜像列表
docker rmi image-id [image-id] 删除指定 id 的镜像,可以是多个 -f 强制删除

docker volume ls 查看 volume 列表
docker network ls 查看网络列表
docker network prune 删除所有无用的网络
docker network rm xxx  删除某个网络


# 传输文档到docker容器内
docker cp xxx mycontainer:/xxxx/
# https://blog.51cto.com/u_16213393/8992972 

# 参数含义
docker -p 宿主端口:容器端口
# 外部访问时,采用宿主端口

docker --name xxxx  # 指定容器的名称
       -d # 后台模式运行容器


docker logs -ft --tail -F xxxx(容器id)

# 进入容器内部 容器ID
docker exec -it fee23dbcad6a /bin/bash

3. docker网络配置

常用网络相关指令:

# 查看网络
docker network ls
# 查看bridge底层细节
docker network inspect xxxx(network_id / name)
# 创建单机桥接网络,名为localnet
docker network create -d bridge localnet
# 指定ip网段创建
docker network create xxxx --subnet 172.20.0.0/16  # 根据需要调整
# 删除网络
docker network rm xxxx

关于为容器创建自定义网络时出现:user specified IP address is supported only when connecting to networks with user configured subnets。错误的解决办法。

docker中,只有使用 --subnet创建的网络才能指定静态IP。因此在使用docker-compose或者docker run命令创建容器时,如果需要指定,则可以使用 :

    --subnet创建网络(用来指定ip段)

    --gateway(用来指定网关)

要指定静态IP,可以先通过network create来创建,然后在docker-compose.yml 文件中配置添加到这个网络。

也可以在 docker-compose.yml 文件中直接配置 network 网络。

但要注意相关IP网段是否与已有网段重复。

参考脚本:

tbgfastgpt2:
    container_name: tbgfastgpt2
    # image: ghcr.io/labring/fastgpt:v4.8.5 # git
    # image: registry.cn-hangzhou.aliyuncs.com/xxxxx/xxxxx:v4.8.x # 阿里云
    image: registry.cn-hangzhou.aliyuncs.com/xxxx/xxxx:4.8.x.xxx.xxx
    ports:
      - 3005:3000
    networks:
      tbgfastgpt2:
        ipv4_address: 172.20.0.8
    ......

networks:
  tbgfastgpt2:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.20.0.0/24  # 定义网络的子网范围

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

博途S7-1500PLC“虚轴“编程应用

1、CODESYS如何添加虚轴 如何添加虚轴(AM400PLC)-CSDN博客文章浏览阅读164次。EtherCAT运动控制总线启用的时候,选择EtherCAT总线任务周期。选择好后,选择点击添加。https://rxxw-control.blog.csdn.net/article/details/139898985虚轴是利用软件算法实现的运动控制轨迹规划…

外挂级OCR神器:免费文档解析、表格识别、手写识别、古籍识别、PDF转Word

智能文档解析&#xff1a;大模型友好的文档解析工具 PDF转Markdown 支持将任意格式的文件&#xff08;图片、PDF、Doc&#xff0f;Docx、网页等&#xff09;解析为Markdown或Json格式&#xff0c;以对LLM友好的方式呈现。 更高速度&#xff1a;100页PDF最快1.5s完成解析 更大…

DEBOPIE框架:打造最好的ChatGPT交易机器人

本文介绍了如何利用 DEBOPIE 框架并基于 ChatGPT 创建高效交易机器人&#xff0c;并强调了在使用 AI 辅助交易时需要注意的限制以及操作步骤。原文: Build the Best ChatGPT Trading Bots with my “DEBOPIE” Framework 如今有大量文章介绍如何通过 ChatGPT 帮助决定如何以及在…

Hi3861 OpenHarmony嵌入式应用入门--TCP Server

本篇使用的是lwip编写tcp服务端。需要提前准备好一个PARAM_HOTSPOT_SSID宏定义的热点&#xff0c;并且密码为PARAM_HOTSPOT_PSK LwIP简介 LwIP是什么&#xff1f; A Lightweight TCP/IP stack 一个轻量级的TCP/IP协议栈 详细介绍请参考LwIP项目官网&#xff1a;lwIP - A Li…

6.7、函数的分文件编写

mian函数部分代码 #include <iostream> using namespace std; #include <string> #include "swap.h"//函数的分文件编写 //实现两个数字进行交换的函数//函数的声明 //void swap(int a,int b); //函数的定义 //void swap(int a, int b) //{ // int temp…

9. Revit API UI: UIView、UIDocument、框选聚焦

9. Revit API UI: UIView、UIDocument、框选聚焦 UI命名空间下的API&#xff0c;到这里差不多就要讲完了&#xff0c;同Application那篇所讲的几个类与接口&#xff0c;都是带UI的对应了一个不带UI的&#xff0c;如UIApplication和Application&#xff0c;作用呢&#xff0c;也…

Python基于PyQt5和卷积神经网络分类模型(CNN分类算法)实现时装类别识别系统GUI界面项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 随着深度学习技术的发展&#xff0c;计算机视觉领域取得了显著的进步&#xff0c;特别是在图像分类、目…

Java8环境安装(jdk1.8安装)详细教程

Java 8环境安装&#xff08;jdk1.8安装&#xff09;详细教程 Java 8&#xff08;也称为JDK 1.8&#xff09;&#xff0c;是Oracle公司于2014年3月发布的一个重要的Java语言版本。这个版本自发布以来&#xff0c;因其众多的新特性和改进&#xff0c;被认为是Java语言发展历程中…

渗透测试之注入

命令注入 命令注入相关分隔符&#xff1a; 字符说明;仅限Linux环境&#xff0c;用于隔开命令&#xff0c;按顺序执行|前面命令的输出结果作为后面命令的输入内容||前提是前面的命令执行失败&#xff0c;和&&号相反&前后两条命令依次执行&&前提是前面的命…

虚拟机的网络配置

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️ 每一步都向着梦想靠近&#xff0c;坚持就是胜利的序曲 一 …

优化服务,推动企业向前发展

在快速变化的商业环境中&#xff0c;企业的成长离不开优质的服务支持。成都树莓集团&#xff0c;作为数字产业生态链的重要构建者&#xff0c;始终将优化服务、助力企业成长作为自身的核心使命。通过全方位、一站式的服务模式&#xff0c;树莓集团为企业提供强大的支持&#xf…

Idea-Idea配置gitIgnore忽略文件

背景 在项目提交到Git过程中&#xff0c;总有一些文件&#xff0c;例如.idea和.iml等这些我们不想提交的&#xff0c;直接添加进入gitIgnore文件中自动忽略掉。 Idea安装插件 1、在File->Setting->Plugins中搜索gitIgnore并安装插件 2、项目右键new->.ignore File-…

vue实现一个简单的审批绘制功能

1、vue代码 <div class"approval"><div class"approval_ul" v-for"(item,key) in approvalList" :key"key"><div><el-radio-group v-model"item.jointlySign"><el-radio label"1">…

P3374 【模板】树状数组 1

题目描述 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; 将某一个数加上 &#x1d465;x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 &#x1d45b;,&#x1d45a;n,m&#xff0c;分别表示该数列数字的个数和操作的总个数。 …

秋招突击——7/2——复习{}——新作{分割等和子集、不同路径、最小路径和、最长回文子串}

文章目录 引言复习新作分割等和子集个人实现参考实现 不同路径个人实现参考实现 最小路径和个人实现参考实现 最长回文子串个人实现参考实现字符串哈希二分 总结 引言 今天起的挺早的&#xff0c;早上把昨天录得关于JVM的相关八股都听完了&#xff0c;然后还背了一部分八股&am…

用Chromatix进行tuning流程

##一、基本调试 ###1、工程初始配置&#xff1a; 这个工具就是一个图形化的参数编辑器&#xff0c;其实所有tuning中的效果参数直接改文件参数酒醒&#xff0c;工具的好处是&#xff1a;带有检查错误和模拟的功能以及一些校验工具和脚本。 初始化可以中需要的配置&#xff1a;t…

基于Java的音乐网站系统01239

目 录 摘要 1 绪论 1.1 研究背景 1.2系统开发目标、意义 1.3研究内容 2 相关技术介绍 2.1 MySQL数据库 2.2 Java编程语言 2.3 SpringBoot框架介绍 3 系统需求分析与设计 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 法律可行性分析 3.2 需…

IP地址定位中多源数据融合的应用

IP地址定位如今在诸如网络安全、地理信息服务、智能交通等领域发挥着关键作用。然而&#xff0c;传统的基于单一数据源&#xff08;如IP数据库&#xff09;的定位方法往往存在精度有限、可靠性不足等问题。多源数据融合技术的出现为解决这些问题提供了新的思路和方法。今天我们…

【机器学习】在【Pycharm】中的实践教程:使用【逻辑回归模型】进行【乳腺癌检测】

目录 案例背景 具体问题 1. 环境准备 小李的理解 知识点 2. 数据准备 2.1 导入必要的库和数据集 小李的理解 知识点 2.2 数据集基本信息 小李的理解 知识点 注意事项 3. 数据预处理 3.1 划分训练集和测试集 小李的理解 知识点 注意事项 3.2 数据标准化 小李…

北京app开发与小程序开发相比较下的优势

随着互联网科技与移动技术的不断成熟&#xff0c;app与小程序的使用也越来越频繁。作为现如今人们日常生活中不可或缺的辅助工具&#xff0c;各企业也开始探索、开发自己的小程序或app。那么&#xff0c;这两者的区别是什么呢&#xff1f;两者相比&#xff0c;北京app开发又具有…
最新文章