Docker自娱—1.初次安装
基本概念
docker是集装箱,容器,把功能打包在一起。image是镜像,如同虚拟机镜像;container容器,运行起来的镜像;
运行的容器,就像是剥离了虚拟机软件的虚拟系统,如同跑起来的虚拟机;安装docker→下载某个服务的镜像→把镜像运行起来成为容器
简要术语
名称 | 术语 |
---|---|
镜像 | image |
容器 | container |
仓库 | repository |
签名 | digest |
版本 | tag |
联合文件系统 | unionFs |
卷 | volume |
体系路线
§ 娱乐级 §
- 安装
- 命令
- 镜像
- 容器
- 数据卷
- dockerfile
- docker network
- idea整合docker
§ 基础级 §
- docker compose
- docker swarm
- ci\cd jenkins
§ 工作级 §
- k8s
安装过程
1、准备步骤
- 1.查看系统信息
| uname -r // 查看linux内核版本
| cat /etc/os-release // 查看系统版本及相关信息,centos7
| lsb_release -a // 查看系统版本,centos6
|
| cat /etc/centos-release // 这3都能看系统具体版本号,6和7都可以。
| cat /etc/redhat-release // 拓展,可以跳过
| rpm -q centos-release // 这个还包含el版本和是否为64位
- 2.卸载旧版本docker
| [root@wg ~]# rpm -qa | grep docker
| [root@wg ~]# yum list installed | grep docker
| --- 假装自己有旧版本 ---
| [root@wg ~]# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-engine
2、正式安装
- 1.安装yum-utils包
| [root@wg ~]# yum install -y yum-utils // centos6回头再装
| # 提供yum-config-manager实用程序,设置稳定存储库
- 2.添加镜像源文件
| [root@wg ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
| # 在/etc/yum.repos.d下生成docker-ce.repo配置文件
| # 建议使用阿里云
- 3.更新yum软件包索引
| [root@wg ~]# yum makecache fast // 生成软件包缓存
- 4.安装docker引擎
| [root@wg ~]# yum -y install docker-ce docker-ce-cli containerd.io
| # docker-ce社区版 一般用这个 ee是企业版 需要企业授权
# 傻白甜级操作指引....
3、验证
[root@wg ~]# docker version // 查看版本
[root@wg ~]# systemctl start docker // 启动
[root@wg ~]# docker run hello-world // hello world是个镜像
[root@wg ~]# docker images // 查看所有已经下载下来的镜像
# hw是个镜像,run是下载并运行,类似我们第一次输入hello world
# 正常的下载方式和运行方式是:
| [root@wg ~]# docker pull hello-world // 下载
| [root@wg ~]# docker run hello-world // 运行
4、卸载步骤
- 1.卸载
| [root@wg ~]# yum remove docker-ce docker-ce-cli containerd.io
yum remove docker \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-selinux \
> docker-engine-selinux \
> docker-engine
- 2.删除资源
| [root@wg ~]# rm -rf /var/lib/docker // docker的默认工作路径
初次使用
1、帮助命令
[root@wg ~]# docker version // 显示docker的版本信息
[root@wg ~]# docker info // 显示系统信息,包括镜像和容器数量
[root@wg ~]# docker command --help // 指令的帮助命令,个人觉得应该多看官网
# 操作前的步骤,非必须
2、查询镜像
[root@wg ~]# docker images //查看本地主机镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest dabbfbe0c57b 5 weeks ago 144MB
hello-world latest feb5d9fea6a5 4 months ago 13.3kB
- 字段说明
| pepository: 镜像仓库源
| tag: 版本号(标签)
| image id: 镜像id
| size: 镜像大小
[root@wg ~]# docker images -a // 列出所有镜像
[root@wg ~]# docker images -q // 只显示镜像Id
[root@wg ~]# docker rmi $(docker images -aq) // 删除时好用,拉出所有镜像id,全删
# 注意:一般不删镜像。删镜像前先删容器,容器是运行的镜像;删容器前先停止容器。
3、搜索下载
- 本地没有镜像,从仓库下载
- 搜索
| docker search 镜像名 // 搜索镜像
| docker search --filter=STARS=30 镜像名 // 搜stars大于30的
- 下载(拉取)
| docker pull 镜像名 // 下载镜像 如果不加tag,默认就是latest
| docker pull mysql:5.7 // 下载mysql5.7版本 格式(镜像名:tag)
4、镜像操作
— 用下载的镜像启动成容器
| docker run [可选参数] 镜像名 // 启动镜像的命令模式
| docker run -d centos // 在后台运行centos
| docker run -it centos // 交互模式运行centos 等同进入了容器
| docker run -p 主端口:容端口 // 端口映射,映射到真实机任意端口
| # 下载centos镜像,运行镜像为容器,等同于在linux中跑另一个linux
- 端口其他表现形式:
| -p ip:主端口:容端口
| -p 容端口
| 容端口(自己体会)
- 正式写法
| docker run -it centos /bin/bash
| # 进入容器,如不执行程序,容器会被瞬间kill;
| # 所以上边是进入容器,并执行了/bin/bash
- 后继操作
| exit // 退出容器(C-p-q)
| docker ps // 查看启动着的容器
- 看不到容器的话,上边的启动正式写法应该修改为:
| docker run -d -it centos /bin/bash //这样退出后也能查看到容器
| docker ps -a //查看启动过的所有容器(历史)这里用ps就能看到
- 重新进入容器方法
| docker exec -it 容器id bashShell // 开启一个新终端,进入容器(常用)
| docker attach 容器id // 进在运行容器,不开新进程 容器id是ps查的第一列
# 看下方图吧
通用安装
CentOS只有7以上才支持docker。工作中环境不确定,有可能需要安装在其他平台,docker官方提供了bash通用安装方式,适用于所有linux平台
[root@wg ~]# curl -fsSL get.docker.com -o get-docker.sh
[root@wg ~]# sudo sh get-docker.sh --mirror Aliyun
[root@wg ~]# systemctl start docker
[root@wg ~]# sudo groupadd docker
[root@wg ~]# usermod -aG docker $USER
[root@wg ~]# systemctl restart docker
安装目录
[root@wg /]# systemctl stop docker
[root@wg /]# vi /etc/docker/daemon.json
| {
| "registry-mirrors": ["http://hub-mirror.c.163.com"],
| "data-root": "/data/docker"
| }
[root@wg /]# systemctl start docker
- 1.这是官方文档方式。此文件默认不存在
- 2.文件涉及默认源设定,如果设定了国内源,会有第一行的内容
- 3.在有文件的前提下,就是增加 data-root
- 4.如果使用一段时间后修改,记得把原路径文件拷贝过来
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律