Linux下Docker的安装及使用
本文目录层级较多,想完全显示可参考此文章,简单点击几下即可:
1.背景
类似于电脑,要在朋友的电脑上跑你写的Java程序,就得检查他电脑有没有安装Java环境.
类似的,要想在别的电脑上跑你写的Python程序,又得检查那台电脑有没有装python.
如何让自己写的程序换到别的电脑上后,可以便捷的运行起来?
将程序和程序的环境打包迁移,是一种解决方案.
- 为啥不用虚拟机?
虚拟机安装太麻烦,就好比一个完整的操作系统,启动起来很费时间.
所以,你可以简单的理解为:Docker就是一个轻量级的虚拟机(只虚拟你需要的软件运行环境,冗余的一点都不要).
- 网上看到的另一个Docker入门网站,还不错.
2.安装
服务器版本:CentOS 8.2 64位
2.1 安装yum-utils
2.2 yum配置阿里Docker源
关于yum的配置,可以参考我这篇文章: CentOS更换yum源
扩展,上方命令无法使用时.
-
解决problem with installed package podman-1.6.4-10.的报错
-
解决yum命令报错问题
2.3 安装Docker
扩展,yum安装时报错.
2.4 查看Docker版本
2.5 扩展
1.为啥安装yum-utils?
为了使用yum-config-manager命令, 执行--add-repo操作.
2.添加阿里docker源干嘛?
在最开始的时候,我们的yum仓库里的docker安装包是上面的几个,执行了yum源添加后,阿里带过来了新的docker安装包。
3.阿里镜像站
4.docker三个组件的区别
containerd.io、docker-ce-cli、docker-ce的区别
3.Docker服务相关
3.1 启动
3.2 停止
3.3 重启
3.4 查看docker状态
4.Docker主要概念
类比win
镜像: 程序安装包
容器: 安装好的程序
(镜像的)仓库: 放安装包的仓库.
4.1 仓库、镜像和容器
-
镜像
程序安装包
Docker镜像里包含了已打包的应用程序及其所依赖的环境。它包含应用程序可用的文件系统和其他元数据,如镜像运行时的可执行文件路径。
-
镜像仓库
安装包的仓库
Docker镜像仓库用于存放Docker镜像,以及促进不同人和不同电脑之间共享这些镜像。当编译镜像时,要么可以在编译它的电脑上运行,要么可以先上传镜像到一个镜像仓库,然后下载到另外一台电脑上并运行它。某些仓库是公开的,允许所有人从中拉取镜像,同时也有一些是私有的,仅部分人和机器可接入。
-
容器
安装好的软件
Docker容器通常是一个Linux容器,它基于Docker镜像被创建。一个运行中的容器是一个运行在Docker主机上的进程,但它和主机,以及所有运行在主机上的其他进程都是隔离的。这个进程也是资源受限的,意味着它只能访问和使用分配给它的资源(CPU、内存等)。
4.2 打包、分发和部署
-
打包
制作镜像
把你软件本身、所需要的依赖、三方库等制作成一个"安装包"
-
分发
上传镜像仓库
将安装包上传到软件仓库,别人可以方便的下载和安装
-
部署
启动镜像,获得运行着的容器.win开发好后.
拿着下载好的安装包,用命令行运行起来(安装包中带着运行环境)
4.3 一个简单的流程
4.2.1 开发者在开发环境(本地机器)开发好应用后,制作出镜像。
Docker执行命令,在本地机器构建出镜像并存储。
4.2.2 开发者执行上传镜像命令,上传本地镜像到镜像仓库.
Docker收到命令后,将本地镜像上传到镜像仓库。
4.2.3 开发者向生产环境(远端服务器)发送运行镜像命令.
生产环境服务器收到命令后,Docker会从镜像仓库拉取镜像,然后基于镜像运行容器。
5.镜像相关
类比win: 程序的安装包
5.1 查看镜像
5.2 搜索镜像
5.3 拉取镜像
5.4 删除镜像
5.5 其他
5.5.1 镜像信息
repositories.json文件中保存了一些基本信息
6.容器相关
类比win: 已经安装好的程序
6.1 查看容器列表
6.2 创建容器
容器创建后,在容器列表中即可看到该容器(相当于安装好程序)
以后用后文的启、停、删就可以操作该容器了.
linux中-和--的区别?
-后面一般跟简写,大多数是一个字母,如:
--后面一般跟长的完整名字,如:
run参数
-
-rm
在容器退出时自动清理容器内部的文件系统
在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据.
但是,对于前台运行的容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要.
启动时设置-rm选项,这样在容器退出时就能够自动清理容器内部的文件系统.
-
-i
保持容器运行
-
-p
端口映射
-
-e
传递环境变量
-
-t
为容器重新分配一个伪输入终端
-
-d
以守护进程模式运行容器,退出后容器不会停止
-
-it
创建一个交互式容器,推出后容器容器停止运行
-
-id
创建一个守护容器;退出后容器不停止运行
-
–-name
为创建的容器命名
-
--restart
重启策略
-
no
默认策略,在容器退出时不重启容器
-
on-failure
在容器非正常退出时(退出状态非0),才会重启容器
-
on-failure:3
在容器非正常退出时重启容器,最多重启3次
-
always
在容器退出时总是重启容器
-
unless-stopped
在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
-
6.3 进入容器
6.4 启动容器
6.5 停止容器
6.6 删除容器
6.7 查看容器详细信息
inspect 视察、检查
6.8 其他
6.8.1 容器文件位置
查看所有容器,其中的id:
eb67258c80d1
与上方文件夹对应
6.8.2 从容器里拷贝文件(出来到)宿主机
手动拷贝,后面可以使用-v命令直接挂载(映射)数据。
6.8.3 设置容器自动重启
重启docker的时候,想要自动重启一些容器.
启动的时候,你可以添加--restart=always来实现.
也可以通过update来更新已有的容器参数
6.8.4 查看容器的启动参数
通过python的pip工具安装runlike
执行runlike查看启动参数,例如:
7.网络相关
容器可以比拟做一个独立的系统环境,能配置自己网络,所以说容器里的localhost不一定等于宿主机的localhost
网络模式
-
bridge:桥接docker(默认创建时,不指定网络驱动,将使用bridge模式)
-
none:不配置网络
-
host:和宿主机共享网络
例如:当你在容器上使用80端口访问其他应用,使用的是宿主机的80端口.
-
container:容器网络连通(用的少,局限很大)
Linux查看网络信息
7.1 查看docker下的网络列表
7.2 查看单个网络详细信息
7.3 创建网络
7.4 删除网络
8.日志相关
示例
9.配置国内加速
9.1 手动修改
重启docker
验证下信息
镜像说明
9.2 DaoCloud镜像站
Linux
__EOF__

本文链接:https://www.cnblogs.com/yang37/p/14464674.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析