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

    1. 更新 apt 包索引
      sudo apt-get update
  • 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

posted @   吾爱吃鱼  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示