栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

[Util]-Docker使用简介

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Util]-Docker使用简介

文章目录
  • Docker简介
    • 镜像
      • 相关命令
      • 拉取镜像
      • 修改镜像位置
    • 容器
      • 相关命令
        • docker run
        • docker exec
        • docker ps
        • docker cp
  • docker命令
    • 容器生命周期管理
    • 容器操作
    • 容器rootfs命令
    • 镜像仓库
    • 本地镜像管理

Docker是一个开源的应用容器引擎。

Docker简介

Docker采用C/S架构模式,使用远程API来管理和创建Docker容器。

镜像

docker镜像可理解为包含了OS文件系统和应用的对象,等价于未运行的容器。

使用WSL2版本docker时,会创建两个镜像(wsl -l -v):

PS C:WINDOWSsystem32> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2

docker-desktop是存放程序的,docker-desktop-data是存放镜像的。

相关命令

镜像操作命令(image-id为镜像ID,类似UUID):

  • docker images:查看本机上的镜像;
  • docker pull [:tag]:拉取镜像;
  • docker rmi :移除镜像;移除所有镜像
  • docker tag ::重命名镜像docker rmi $(docker images -q)
  • docker save > file.tar:保存镜像;
  • docker load < file.tar:加载镜像;
拉取镜像

使用docker pull [:tag]拉取镜像(忽略tag时为d最新的,即latest);如要拉取最新的mysql镜像:

docker pull mysql

修改镜像位置

修改镜像存放位置需要:

  • 备份原来的镜像;

    wsl --export docker-desktop D:Programmedockerdocker-desktop.tar
    wsl --export docker-desktop-data D:Programmedockerdocker-desktop-data.tar
    
  • 删除镜像;

    wsl --unregister docker-desktop
    wsl --unregister docker-desktop-data
    
  • 重新创建镜像;

    wsl --import docker-desktop D:Programmedockerdesktop D:Programmedockerdocker-desktop.tar --version 2
    wsl --import docker-desktop-data D:Programmedockerdesktop-data D:Programmedockerdocker-desktop-data.tar --version 2
    

修改镜像存放位置后需要重启docker服务。

容器

镜像拉到本地后,通过即可运行以启动容器:

docker run -it

cmd为运行的命令:

  • linux下一般为/bin/bash
  • windows下一般为pwsh.exe

启动后会自动切换进入到容器中(执行bash时)。

相关命令

容器操作相关命令:

  • 查看容器:docker ps查看运行容器,docker ps -a查看所有容器;
  • 运行容器:docker run -it
  • 连接已运行容器:docker exec -it
  • 启动容器:docker start
  • 停止容器:docker stop ,停止所有容器docker stop $(docker ps -a -q);
  • 删除容器:docker rm ,删除所有容器docker rm $(docker ps -a -q);
docker run

docker run创建一个新的容器并运行一个命令:

docker run [options] [command] [arg...]

options:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的端口
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • –name=“nginx-lb”: 为容器指定一个名称;
  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h “mars”: 指定容器的hostname;
  • -e username=“ritchie”: 设置环境变量;
  • –env-file=[]: 从指定文件读入环境变量;
  • –cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • –net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • –link=[]: 添加链接到另一个容器;
  • –expose=[]: 开放一个端口或一组端口;
  • –volume , -v: 绑定一个卷
docker exec

docker exec在已运行的容器中执行命令:

docker exec [options] [command] [arg...]

options(常使用-it来连接已运行容器,用于执行命令):

  • -d :分离模式: 在后台运行
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端
docker ps

docker ps用于列出容器:

docker ps [options]

options:

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容,条件以key=value形式。
  • –format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器(如ps -n 3列出3个容器)。
  • –no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小

获取名称包含‘develop’,且状态为exited或dead的容器ID:

docker ps -q --filter name=.*develop.* --filter status=exited --filter status=dead

docker cp

在容器与主机间复制文件(文件夹时自动复制子文件):

docker cp [OPTIONS] container:src_path dest_path
docker cp [OPTIONS] dest_path container:src_path  

容器中的路径是相对于容器的根目录(/)的;主机路径是相对于当前目录的。

options:

  • -a: 存档模式(复制所有uid/gid信息)
  • -L: 保持源目标中的链接
docker命令

所有docker命令都是docker + (cmd用于区分不同类型命令),基本命令:

  • docker version:显示docker信息(Client与Server的版本、系统架构等);
  • docker info:显示docker相关系统信息(运行、暂停、停止的容器数量、镜像数量,存储驱动类型,硬件信息等);
容器生命周期管理

容器生命周期相关命令:

  • run:运行一个容器;
  • start/stop/restart:启动、停止、重启容器;
  • kill:杀掉容器;
  • rm:删除容器;
  • pause/unpause:暂停、恢复容器;
  • create:创建新的容器;
  • exec:在运行容器中执行命令;
容器操作

容器相关操作:

  • ps:列出容器;
  • inspect:获取容器/镜像的元数据;
  • top:查看容器中运行的进程信息;
  • attach:连接到正在运行的容器;
  • events:从服务器获取实时事件;
  • logs:获取容器日志;
  • wait:阻塞运行直到容器停止,然后打印出其退出码;
  • export:导出文件系统为一个tar文件;
  • port:累出指定容器得到端口映射;
容器rootfs命令
  • commit:从容器中创建一个新的镜像
  • cp:容器与主机间的数据拷贝;
  • diff:检查容器里文件结构的更改;
镜像仓库

镜像仓库相关操作:

  • login/logout:登录、登出镜像仓库;
  • pull:从江西仓库中拉取或更新指定镜像;
  • push:将本地镜像上传到镜像仓库;
  • search:从docker hub查找镜像;
本地镜像管理

本地镜像相关操作:

  • images:列出本地镜像;
  • rmi:删除本地镜像;
  • tag:标记本地镜像;
  • build:使用dockerfile创建镜像;
  • history:查看镜像创建历史;
  • save:将制定镜像保存为tar文件;
  • load:导入save保存的tar镜像文件;
  • import:从归档文件中创建镜像;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号