docker学习笔记
一、初识Docker
(一)什么是Docker
关于Docker
Docker 是一个应用打包、分发、部署的工具,可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件
打包、分发、部署
打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包。
分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装。
部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一样的运行环境,不管是在 Windows/Mac/Linux。
Docker 包括三个基本概念:
镜像(Image)
Docker的镜像概念类似于虚拟机⾥的镜像,是⼀个只读的模板,⼀个独⽴的⽂件系统,包括运⾏容器所需的数据,可以⽤来创建新的容器。
例如:⼀个镜像可以包含⼀个完整的 ubuntu 操作系统环境,⾥⾯仅安装了MySQL或⽤户需要的其它应⽤程序。
容器(Container)
Docker容器是由Docker镜像创建的运⾏实例,类似VM虚拟机,⽀持启动,停⽌,删除等。
每个容器间是相互隔离的,容器中会运⾏特定的应⽤,包含特定应⽤的代码及所需的依赖⽂件。
仓库(Repository)
Docker的仓库功能类似于Github,是⽤于托管镜像的
二、Docker的安装
(一)Centos安装
- 如果机器安装过docker先卸载旧版
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
- 使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装完成后,运行下面的命令,验证是否安装成功。
docker version
或者
docker info
(二)Centos安装Ubuntu20.04安装Docker
-
- 更新 apt 包索引
sudo apt-get update
- 更新 apt 包索引
-
2.安装 apt 依赖包,⽤于通过HTTPS来获取仓库
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
-
3.添加 Docker 的官⽅ GPG 密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
-
4.通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥
sudo apt-key fingerprint 0EBFCD88
-
5.使⽤以下指令设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
6.安装 Docker Engine-Community
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
-
7.测试是否安装成功
-
sudo docker run hello-world
-
8.查看当前安装版本
docker -v
出现
Docker version 23.0.1, build a5ee5
- 9.启动与停止,安装完成Docker后,默认已经启动了docker服务。
启动docker
sudo service docker start
重启docker
$ sudo service docker restart
停止docker
$ sudo service docker stop
三、Docker的基本操作
(一)Docker镜像操作
列出本地images
docker images
或
$ sudo docker image ls
含中间映像层
docker images -a
下载Redis官方最新镜像,相当于:docker pull redis:latest
docker pull redis
下载仓库所有Redis镜像
docker pull -a redis
单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
删除本地全部镜像
docker rmi -f $(docker images -q)
docker images 查看所有本地主机的镜像
docker search 镜像名 搜索镜像
docker pull 镜像名 [标签] 下载镜像(如果不写tag,默认是latest)
docker rmi 镜像名 [标签] 删除镜像 docker rmi -f $(docker images -aq) 删除全部镜像
docker tag 镜像名:版本 新镜像名:版本 复制镜像并且修改名称
docker commit -a "xxx" -c "xxx" 镜像ID 名字:版本 #提交镜像
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
docker load -i /xxx/xxx.tar #导入镜像
docker save -o /xxx/xxx.tar #保存一个镜像为一个tar包
(二)Docker容器操作
新建并启动容器,参数:-i 以交互模式运行容器;-t 为容器重新分配一个伪输入终端;--name 为容器指定一个名称
docker run -i -t --name mycentos
后台启动容器,参数:-d 已守护方式启动容器
docker run -d mycentos
启动一个或多个已经被停止的容器
docker start redis
重启容器
docker restart redis
进入容器
docker exec -i -t centos /bin/bash
查看正在运行的容器
docker ps
查看正在运行的容器的ID
docker ps -q
查看正在运行+历史运行过的容器
docker ps -a
显示运行容器总文件大小
docker ps -s
停止一个运行中的容器
docker stop redis
杀掉一个运行中的容器
docker kill redis
删除一个已停止的容器
docker rm redis
删除一个运行中的容器
docker rm -f redis
删除多个容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
-l 移除容器间的网络连接,连接名为 db
docker rm -l db
-v 删除容器,并删除容器挂载的数据卷
docker rm -v redis
docker run [可选参数] image 命令 #启动容器(无镜像会先下载镜像)
参数说明
--name = "Name" 容器名字
-c 后面跟待完成的命令
-d 以后台方式运行并且返回ID,启动守护进程式容器
-i 使用交互方式运行容器,通常与t同时使用
-t 为容器重新分配一个伪输入终端。也即启动交互式容器
-p 指定容器端口 -p 容器端口:物理机端口 映射端口
-P 随机指定端口
-v 给容器挂载存储卷
docker build #创建镜像 -f:指定dockerfile文件路径 -t:镜像名字以及标签
docker logs 容器实例的ID #查看容器日志
docker rename 旧名字 新名字 # 给容器重新命名
docker top 容器实例的ID #查看容器内进程
docker ps -a #列出所有容器(不加-a就是在运行的)
docker rm 容器实例的ID #删除容器(正在运行容器不能删除,除非加-f选项)
docker kill 容器实例的ID #杀掉容器
docker history 容器实例的ID #查看docker镜像的变更历史
docker start 容器实例的ID #启动容器
docker restart 容器实例的ID #重启容器
docker stop 容器实例的ID #停止正在运行的容器
docker attach /docker exec 容器实例的ID #同为进入容器命令,不同的是attach连接终止会让容器退出后台运行,而exec不会。并且,docker attach是进入正在执行的终端,不会情动新的进程,而docker exec则会开启一个新的终端,可以在里面操作。
docker image inspect 容器名称:容器标签 #查看容器内源数据
docker cp 容器id:容器内路径 目的主机路径 #从容器内拷贝文件到主机(常用)或者从主机拷贝到容器(一般用挂载)
exit #直接退出容器
crlt + P + Q #退出容器但是不终止运行
(三)Docker帮助命令
docker version #显示docker详细信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker --help #docker帮助命令手册
引用文章
————————————————
作者:Mruce09蔡
链接:https://juejin.cn/post/7114255169306492965
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
————————————————
版权声明:本文为CSDN博主「北极的三哈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_68744965/article/details/129147628
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」