当前位置: 首页 > news >正文

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~jammysudo 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.xxxports:- 3005:3000networks:tbgfastgpt2:ipv4_address: 172.20.0.8......networks:tbgfastgpt2:driver: bridgeipam:driver: defaultconfig:- subnet: 172.20.0.0/24  # 定义网络的子网范围

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AiPPT的成功之路:PMF付费率与增长策略
  • 美股交易相关知识点 持续完善中
  • 基于SpringBoot+Vue的招生管理系统(带1w+文档)
  • VSCode使用ipynb文件高效地进行功能测试
  • ArduPilot开源飞控之AP_VisualOdom
  • STM32快速复习(八)SPI通信
  • Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目
  • Centos7开放端口
  • 汇聚荣拼多多电商的技巧有哪些?
  • Nordic 52832作为HID 键盘连接配对电视/投影后控制没反应问题的分析和解决
  • 给您介绍工控CAN总线
  • 网安实验大全
  • C# List、LinkedList、Dictionary性能对比
  • 基于深度学习的异常行为检测
  • 密码学原理精解【5】
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 4. 路由到控制器 - Laravel从零开始教程
  • Java 最常见的 200+ 面试题:面试必备
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • JS实现简单的MVC模式开发小游戏
  • laravel with 查询列表限制条数
  • Magento 1.x 中文订单打印乱码
  • node入门
  • Redis中的lru算法实现
  • Solarized Scheme
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • webgl (原生)基础入门指南【一】
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 分享几个不错的工具
  • 力扣(LeetCode)21
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 详解移动APP与web APP的区别
  • 用 Swift 编写面向协议的视图
  • 正则表达式
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​【已解决】npm install​卡主不动的情况
  • !!java web学习笔记(一到五)
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #include<初见C语言之指针(5)>
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (07)Hive——窗口函数详解
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (笔记)M1使用hombrew安装qemu
  • (分类)KNN算法- 参数调优
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (回溯) LeetCode 77. 组合
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (一)基于IDEA的JAVA基础12
  • (一)认识微服务
  • ******之网络***——物理***
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core 中插件式开发实现