[{"data":1,"prerenderedAt":1189},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0600-docker-ming-ling-xue-xi":3,"wiki-doc-items-2024-10-03-docker-jiao-cheng":1110,"wiki:author-members":1177},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":1096,"chapterOrder":1097,"date":1098,"description":617,"docKey":1099,"docRoot":1100,"docTitle":1101,"extension":1102,"isWikiDoc":1103,"isWikiIndex":1104,"meta":1105,"navigation":1103,"path":1106,"seo":1107,"stem":1108,"wikiDepth":624,"__hash__":1109},"wiki\u002Fwiki\u002F2024-10-03-Docker教程\u002F0600-Docker命令学习.md","Docker命令学习",[7],"董佳辉",{"type":9,"value":10,"toc":1092},"minimark",[11,15,24,27,30,377,385,578,583,595,611,914,919,944,959,968,1018,1021,1027,1030,1033,1055,1058,1076,1080,1083,1088],[12,13,14],"h3",{"id":14},"参考文档",[16,17,18],"p",{},[19,20,21],"a",{"href":21,"rel":22},"https:\u002F\u002Fwww.runoob.com\u002Fdocker\u002Fdocker-tutorial.html",[23],"nofollow",[12,25,26],{"id":26},"常用命令",[16,28,29],{},"常用的标红了，偶尔用的标绿了，其他了解就行。",[31,32,33,50],"table",{},[34,35,36],"thead",{},[37,38,39,44,47],"tr",{},[40,41,43],"th",{"align":42},"left","命令",[40,45,46],{"align":42},"描述",[40,48,49],{"align":42},"示例",[51,52,53,65,76,87,98,109,120,131,141,152,163,174,184,195,206,217,227,237,247,257,268,279,290,301,312,323,333,344,355,366],"tbody",{},[37,54,55,59,62],{},[56,57,58],"td",{"align":42},"docker run",[56,60,61],{"align":42},"创建并启动一个新的容器。",[56,63,64],{"align":42},"docker run -it ubuntu bash",[37,66,67,70,73],{},[56,68,69],{"align":42},"docker build",[56,71,72],{"align":42},"通过指定的 Dockerfile 创建一个新的镜像。",[56,74,75],{"align":42},"docker build -t myimage .",[37,77,78,81,84],{},[56,79,80],{"align":42},"docker pull",[56,82,83],{"align":42},"从 Docker 仓库拉取镜像。",[56,85,86],{"align":42},"docker pull ubuntu",[37,88,89,92,95],{},[56,90,91],{"align":42},"docker push",[56,93,94],{"align":42},"将本地镜像推送到 Docker 仓库。",[56,96,97],{"align":42},"docker push myimage",[37,99,100,103,106],{},[56,101,102],{"align":42},"docker stop",[56,104,105],{"align":42},"停止一个正在运行的容器。",[56,107,108],{"align":42},"docker stop container_id",[37,110,111,114,117],{},[56,112,113],{"align":42},"docker start",[56,115,116],{"align":42},"启动一个已经存在的容器。",[56,118,119],{"align":42},"docker start container_id",[37,121,122,125,128],{},[56,123,124],{"align":42},"docker restart",[56,126,127],{"align":42},"重新启动容器。",[56,129,130],{"align":42},"docker restart container_id",[37,132,133,136,139],{},[56,134,135],{"align":42},"docker ps",[56,137,138],{"align":42},"列出当前正在运行的容器。",[56,140,135],{"align":42},[37,142,143,146,149],{},[56,144,145],{"align":42},"docker rm",[56,147,148],{"align":42},"删除一个或多个停止的容器。",[56,150,151],{"align":42},"docker rm container_id",[37,153,154,157,160],{},[56,155,156],{"align":42},"docker exec",[56,158,159],{"align":42},"在一个正在运行的容器中执行命令。",[56,161,162],{"align":42},"docker exec -it container_id bash",[37,164,165,168,171],{},[56,166,167],{"align":42},"docker logs",[56,169,170],{"align":42},"查看容器的日志输出。",[56,172,173],{"align":42},"docker logs container_id",[37,175,176,179,182],{},[56,177,178],{"align":42},"docker images",[56,180,181],{"align":42},"列出本地所有镜像。",[56,183,178],{"align":42},[37,185,186,189,192],{},[56,187,188],{"align":42},"docker rmi",[56,190,191],{"align":42},"删除一个或多个镜像。",[56,193,194],{"align":42},"docker rmi myimage",[37,196,197,200,203],{},[56,198,199],{"align":42},"docker network",[56,201,202],{"align":42},"管理 Docker 网络。",[56,204,205],{"align":42},"docker network ls",[37,207,208,211,214],{},[56,209,210],{"align":42},"docker volume",[56,212,213],{"align":42},"管理 Docker 数据卷。",[56,215,216],{"align":42},"docker volume ls",[37,218,219,222,225],{},[56,220,221],{"align":42},"docker-compose up",[56,223,224],{"align":42},"启动 docker-compose.yml 中定义的所有服务。",[56,226,221],{"align":42},[37,228,229,232,235],{},[56,230,231],{"align":42},"docker-compose down",[56,233,234],{"align":42},"停止并移除 docker-compose.yml 中定义的所有服务及其相关资源。",[56,236,231],{"align":42},[37,238,239,242,245],{},[56,240,241],{"align":42},"docker info",[56,243,244],{"align":42},"显示 Docker 系统的详细信息。",[56,246,241],{"align":42},[37,248,249,252,255],{},[56,250,251],{"align":42},"docker stats",[56,253,254],{"align":42},"查看正在运行的容器的实时资源使用情况（CPU、内存等）。",[56,256,251],{"align":42},[37,258,259,262,265],{},[56,260,261],{"align":42},"docker inspect",[56,263,264],{"align":42},"查看容器或镜像的详细信息（JSON 格式）。",[56,266,267],{"align":42},"docker inspect container_id",[37,269,270,273,276],{},[56,271,272],{"align":42},"docker save",[56,274,275],{"align":42},"将一个镜像保存为 tar 文件。",[56,277,278],{"align":42},"docker save -o myimage.tar myimage",[37,280,281,284,287],{},[56,282,283],{"align":42},"docker load",[56,285,286],{"align":42},"从 tar 文件中加载镜像。",[56,288,289],{"align":42},"docker load -i myimage.tar",[37,291,292,295,298],{},[56,293,294],{"align":42},"docker tag",[56,296,297],{"align":42},"为镜像添加标签（tag）。",[56,299,300],{"align":42},"docker tag myimage myimage:v1",[37,302,303,306,309],{},[56,304,305],{"align":42},"docker buildx build",[56,307,308],{"align":42},"使用 Buildx 构建多架构镜像。",[56,310,311],{"align":42},"docker buildx build -t myimage .",[37,313,314,317,320],{},[56,315,316],{"align":42},"docker buildx create",[56,318,319],{"align":42},"创建一个新的 Buildx 构建实例。",[56,321,322],{"align":42},"docker buildx create --use",[37,324,325,328,331],{},[56,326,327],{"align":42},"docker buildx ls",[56,329,330],{"align":42},"列出所有可用的 Buildx 构建实例。",[56,332,327],{"align":42},[37,334,335,338,341],{},[56,336,337],{"align":42},"docker buildx use",[56,339,340],{"align":42},"设置当前的 Buildx 构建实例。",[56,342,343],{"align":42},"docker buildx use mybuilder",[37,345,346,349,352],{},[56,347,348],{"align":42},"docker buildx bake",[56,350,351],{"align":42},"使用 Bake 文件批量构建镜像。",[56,353,354],{"align":42},"docker buildx bake -f bake.hcl",[37,356,357,360,363],{},[56,358,359],{"align":42},"docker buildx build --push",[56,361,362],{"align":42},"构建镜像并推送到镜像仓库。",[56,364,365],{"align":42},"docker buildx build --push -t myimage .",[37,367,368,371,374],{},[56,369,370],{"align":42},"docker buildx build --platform",[56,372,373],{"align":42},"构建镜像并为多个平台生成支持。",[56,375,376],{"align":42},"docker buildx build --platform linux\u002Famd64,linux\u002Farm64 -t myimage .",[378,379,381],"h4",{"id":380},"run命令的参数非常重要",[382,383,384],"strong",{},"run命令的参数（非常重要）",[31,386,387,400],{},[34,388,389],{},[37,390,391,394,397],{},[40,392,393],{"align":42},"参数\u002F配置",[40,395,396],{"align":42},"功能说明",[40,398,399],{"align":42},"重要性与参考依据",[51,401,402,413,424,435,446,457,468,479,490,501,512,523,534,545,556,567],{},[37,403,404,407,410],{},[56,405,406],{"align":42},"--name=ros_jazzy_opencv411_cuda128_cudnn971_noble",[56,408,409],{"align":42},"指定容器名称，便于后续管理",[56,411,412],{"align":42},"替代随机生成的容器名。",[37,414,415,418,421],{},[56,416,417],{"align":42},"--gpus all",[56,419,420],{"align":42},"允许容器访问宿主机所有GPU资源，需NVIDIA驱动支持",[56,422,423],{"align":42},"用于CUDA加速等GPU依赖任务。",[37,425,426,429,432],{},[56,427,428],{"align":42},"-e NVIDIA_DRIVER_CAPABILITIES=all",[56,430,431],{"align":42},"启用NVIDIA驱动的全部功能（如CUDA、图形渲染）",[56,433,434],{"align":42},"确保容器内GPU功能完整67。",[37,436,437,440,443],{},[56,438,439],{"align":42},"-dit",[56,441,442],{"align":42},"组合参数：- -d：后台运行容器（Detached模式）- -i：保持标准输入（STDIN）开放- -t：分配伪终端（TTY）",[56,444,445],{"align":42},"允许容器在后台运行并支持交互操作。",[37,447,448,451,454],{},[56,449,450],{"align":42},"--privileged",[56,452,453],{"align":42},"赋予容器完全主机权限（可访问设备、内核模块等）",[56,455,456],{"align":42},"用于需要直接操作硬件的场景（如访问USB设备），但存在安全风险。",[37,458,459,462,465],{},[56,460,461],{"align":42},"-v \u002Fdev:\u002Fdev \\",[56,463,464],{"align":42},"映射宿主机的\u002Fdev目录",[56,466,467],{"align":42},"用于需要直接操作硬件的场景（如访问USB设备），这样可以热插拔，容器会直接看到宿主机生成的设备别名，但存在安全风险。",[37,469,470,473,476],{},[56,471,472],{"align":42},"--net=host",[56,474,475],{"align":42},"共享宿主机网络命名空间（容器使用宿主机IP和端口）",[56,477,478],{"align":42},"简化网络配置，无NAT，这样的话，网络效率更高，局域网设备更容易发现。",[37,480,481,484,487],{},[56,482,483],{"align":42},"--group-add audio--group-add video--group-add dialout",[56,485,486],{"align":42},"将容器用户加入宿主机用户组：- audio：音频设备访问- video：视频设备访问- dialout：串口设备访问",[56,488,489],{"align":42},"避免权限问题（如避免无法调用摄像头、麦克风）。",[37,491,492,495,498],{},[56,493,494],{"align":42},"-e DISPLAY=$DISPLAY-e XAUTHORITY=\u002Fhome\u002Ftungchiahui\u002F.Xauthority-e WAYLAND_DISPLAY-e XDG_RUNTIME_DIR-e QT_QPA_PLATFORM=xcb",[56,496,497],{"align":42},"配置图形显示环境：- 绑定宿主机显示接口（X11或Wayland）- 设置GUI应用渲染后端",[56,499,500],{"align":42},"支持容器内运行图形界面应用（如OpenCV可视化）。",[37,502,503,506,509],{},[56,504,505],{"align":42},"-v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix:rw-v \u002Fdev\u002Fdri:\u002Fdev\u002Fdri",[56,507,508],{"align":42},"挂载宿主机图形设备：- X11套接字目录- 直接渲染管理器（DRI）设备",[56,510,511],{"align":42},"实现容器内图形显示。",[37,513,514,517,520],{},[56,515,516],{"align":42},"-v $HOME\u002F.Xauthority:\u002Fhome\u002Ftungchiahui\u002F.Xauthority:ro",[56,518,519],{"align":42},"挂载X11认证文件（只读）",[56,521,522],{"align":42},"确保容器有权连接宿主机显示服务。",[37,524,525,528,531],{},[56,526,527],{"align":42},"-v \u002Frun\u002Fuser\u002F1000\u002Fwayland-0-v \u002Frun\u002Fuser\u002F1000",[56,529,530],{"align":42},"挂载Wayland显示协议相关目录",[56,532,533],{"align":42},"支持Wayland协议的图形显示。",[37,535,536,539,542],{},[56,537,538],{"align":42},"--ulimit nofile=1024:524288",[56,540,541],{"align":42},"设置进程**最大可打开文件数（nofile）**的方式，用于控制容器或进程运行时的文件句柄数量限制。--ulimit \u003C限制类型>=\u003C软限制>:\u003C硬限制>",[56,543,544],{"align":42},"如果默认限制太小，可能会出现 \"too many open files\" 的错误。所以在容器运行或系统服务启动时，需要调大这个值。--ulimit nofile=4096:65536",[37,546,547,550,553],{},[56,548,549],{"align":42},"-v \u002Fhome\u002Ftungchiahui:\u002Fhome\u002Ftungchiahui",[56,551,552],{"align":42},"挂载宿主机用户目录到容器内同名路径",[56,554,555],{"align":42},"实现宿主机与容器间文件共享（如代码、数据持久化）。",[37,557,558,561,564],{},[56,559,560],{"align":42},"-w \u002Fhome\u002Ftungchiahui",[56,562,563],{"align":42},"设置容器启动后的默认工作目录",[56,565,566],{"align":42},"直接进入项目路径，方便执行命令2324。",[37,568,569,572,575],{},[56,570,571],{"align":42},"tungchiahui\u002Fros-opencv:jazzy-411-cuda128-cudnn971-noble",[56,573,574],{"align":42},"镜像名称指定镜像及标签，包含：- ROS 2 Jazzy- OpenCV 4.11- CUDA 12.8- cuDNN 9.7.1",[56,576,577],{"align":42},"提供预配置的深度学习与机器人开发环境。",[16,579,580],{},[382,581,582],{},"我已经写好了一个非常完备的运行命令了,你直接用我的就可以.",[16,584,585,586,590,591,594],{},"下方这条命令一定要在普通用户下运行，不要在root用户下运行，其实加不加",[587,588,589],"code",{},"sudo","加不加",[587,592,593],{},"sudo -E","都无所谓。",[16,596,597,598,600,601,603,604,607,608,610],{},"用户已经被加到docker组了，不用",[587,599,589],{},"也行跑，其次，",[587,602,589],{},"运行的话，你的",[587,605,606],{},"$HOME","变量也不会变，更何况加上-E的话，这样你的",[587,609,606],{},"更不可能变了。",[612,613,618],"pre",{"className":614,"code":615,"language":616,"meta":617,"style":617},"language-bash shiki shiki-themes github-light github-dark","sudo docker run --name=ros_opencv_cuda \\\n--gpus all \\\n-e NVIDIA_DRIVER_CAPABILITIES=all \\\n-e DISPLAY=$DISPLAY \\\n-dit \\\n--privileged \\\n--net=host \\\n--group-add audio \\\n--group-add video \\\n--group-add dialout \\\n-e XAUTHORITY=$HOME\u002F.Xauthority \\\n-e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \\\n-e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \\\n-e QT_QPA_PLATFORM=xcb \\\n-v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix:rw \\\n-v \u002Fdev:\u002Fdev \\\n-v $HOME\u002F.Xauthority:$HOME\u002F.Xauthority:ro \\\n-v \u002Frun\u002Fuser\u002F$(id -u)\u002Fwayland-0:\u002Frun\u002Fuser\u002F$(id -u)\u002Fwayland-0 \\\n-v \u002Frun\u002Fuser\u002F$(id -u):\u002Frun\u002Fuser\u002F$(id -u) \\\n-v $HOME:$HOME \\\n-w $HOME \\\ntungchiahui\u002Fros-opencv:humble-411-cuda128-cudnn970-jammy\n","bash","",[587,619,620,642,654,665,679,687,695,703,714,724,734,749,762,775,785,796,806,822,858,887,900,908],{"__ignoreMap":617},[621,622,625,628,632,635,639],"span",{"class":623,"line":624},"line",1,[621,626,589],{"class":627},"sScJk",[621,629,631],{"class":630},"sZZnC"," docker",[621,633,634],{"class":630}," run",[621,636,638],{"class":637},"sj4cs"," --name=ros_opencv_cuda",[621,640,641],{"class":637}," \\\n",[621,643,645,649,652],{"class":623,"line":644},2,[621,646,648],{"class":647},"sVt8B","--gpus ",[621,650,651],{"class":630},"all",[621,653,641],{"class":637},[621,655,657,660,663],{"class":623,"line":656},3,[621,658,659],{"class":647},"-e ",[621,661,662],{"class":630},"NVIDIA_DRIVER_CAPABILITIES=all",[621,664,641],{"class":637},[621,666,668,670,673,676],{"class":623,"line":667},4,[621,669,659],{"class":647},[621,671,672],{"class":630},"DISPLAY=",[621,674,675],{"class":647},"$DISPLAY ",[621,677,678],{"class":637},"\\\n",[621,680,682,685],{"class":623,"line":681},5,[621,683,684],{"class":647},"-dit ",[621,686,678],{"class":637},[621,688,690,693],{"class":623,"line":689},6,[621,691,692],{"class":647},"--privileged ",[621,694,678],{"class":637},[621,696,698,701],{"class":623,"line":697},7,[621,699,700],{"class":647},"--net=host ",[621,702,678],{"class":637},[621,704,706,709,712],{"class":623,"line":705},8,[621,707,708],{"class":647},"--group-add ",[621,710,711],{"class":630},"audio",[621,713,641],{"class":637},[621,715,717,719,722],{"class":623,"line":716},9,[621,718,708],{"class":647},[621,720,721],{"class":630},"video",[621,723,641],{"class":637},[621,725,727,729,732],{"class":623,"line":726},10,[621,728,708],{"class":647},[621,730,731],{"class":630},"dialout",[621,733,641],{"class":637},[621,735,737,739,742,744,747],{"class":623,"line":736},11,[621,738,659],{"class":647},[621,740,741],{"class":630},"XAUTHORITY=",[621,743,606],{"class":647},[621,745,746],{"class":630},"\u002F.Xauthority",[621,748,641],{"class":637},[621,750,752,754,757,760],{"class":623,"line":751},12,[621,753,659],{"class":647},[621,755,756],{"class":630},"WAYLAND_DISPLAY=",[621,758,759],{"class":647},"$WAYLAND_DISPLAY ",[621,761,678],{"class":637},[621,763,765,767,770,773],{"class":623,"line":764},13,[621,766,659],{"class":647},[621,768,769],{"class":630},"XDG_RUNTIME_DIR=",[621,771,772],{"class":647},"$XDG_RUNTIME_DIR ",[621,774,678],{"class":637},[621,776,778,780,783],{"class":623,"line":777},14,[621,779,659],{"class":647},[621,781,782],{"class":630},"QT_QPA_PLATFORM=xcb",[621,784,641],{"class":637},[621,786,788,791,794],{"class":623,"line":787},15,[621,789,790],{"class":647},"-v ",[621,792,793],{"class":630},"\u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix:rw",[621,795,641],{"class":637},[621,797,799,801,804],{"class":623,"line":798},16,[621,800,790],{"class":647},[621,802,803],{"class":630},"\u002Fdev:\u002Fdev",[621,805,641],{"class":637},[621,807,809,812,815,817,820],{"class":623,"line":808},17,[621,810,811],{"class":647},"-v $HOME",[621,813,814],{"class":630},"\u002F.Xauthority:",[621,816,606],{"class":647},[621,818,819],{"class":630},"\u002F.Xauthority:ro",[621,821,641],{"class":637},[621,823,825,827,830,833,836,839,842,845,847,849,851,853,856],{"class":623,"line":824},18,[621,826,790],{"class":647},[621,828,829],{"class":630},"\u002Frun\u002Fuser\u002F",[621,831,832],{"class":647},"$(",[621,834,835],{"class":627},"id",[621,837,838],{"class":637}," -u",[621,840,841],{"class":647},")",[621,843,844],{"class":630},"\u002Fwayland-0:\u002Frun\u002Fuser\u002F",[621,846,832],{"class":647},[621,848,835],{"class":627},[621,850,838],{"class":637},[621,852,841],{"class":647},[621,854,855],{"class":630},"\u002Fwayland-0",[621,857,641],{"class":637},[621,859,861,863,865,867,869,871,873,876,878,880,882,885],{"class":623,"line":860},19,[621,862,790],{"class":647},[621,864,829],{"class":630},[621,866,832],{"class":647},[621,868,835],{"class":627},[621,870,838],{"class":637},[621,872,841],{"class":647},[621,874,875],{"class":630},":\u002Frun\u002Fuser\u002F",[621,877,832],{"class":647},[621,879,835],{"class":627},[621,881,838],{"class":637},[621,883,884],{"class":647},") ",[621,886,678],{"class":637},[621,888,890,892,895,898],{"class":623,"line":889},20,[621,891,811],{"class":647},[621,893,894],{"class":630},":",[621,896,897],{"class":647},"$HOME ",[621,899,678],{"class":637},[621,901,903,906],{"class":623,"line":902},21,[621,904,905],{"class":647},"-w $HOME ",[621,907,678],{"class":637},[621,909,911],{"class":623,"line":910},22,[621,912,913],{"class":647},"tungchiahui\u002Fros-opencv:humble-411-cuda128-cudnn970-jammy\n",[16,915,916],{},[382,917,918],{},"你需要自己手动修改的内容：",[920,921,922,931,934,937],"ol",{},[923,924,925,927,928,930],"li",{},[587,926,662],{}," ",[587,929,417],{},"没有英伟达显卡请注释。",[923,932,933],{},"--name后面请自己为容器起名。",[923,935,936],{},"最后一行仓库名称请你自己找对应的镜像填上。",[923,938,939,940,943],{},"ROS1在Fedora发行版下会爆内存，需要添加上下面这个参数，如果你不是Fedora和ROS1,",[382,941,942],{},"请不要加","。(现在其实也很少用ROS1了,ROS1已经逐步淘汰了)",[612,945,947],{"className":614,"code":946,"language":616,"meta":617,"style":617},"--ulimit nofile=1024:524288 \\\n",[587,948,949],{"__ignoreMap":617},[621,950,951,954,957],{"class":623,"line":624},[621,952,953],{"class":627},"--ulimit",[621,955,956],{"class":630}," nofile=1024:524288",[621,958,641],{"class":637},[920,960,961],{"start":681},[923,962,963,964,967],{},"如果想用当前用户登陆容器,可以加上下面这几条,但非常非常",[382,965,966],{},"不建议",".",[612,969,971],{"className":614,"code":970,"language":616,"meta":617,"style":617},"--user $(id -u):$(id -g) \\\n-v \u002Fetc\u002Fpasswd:\u002Fetc\u002Fpasswd:ro \\\n-v \u002Fetc\u002Fgroup:\u002Fetc\u002Fgroup:ro \\\n",[587,972,973,1000,1009],{"__ignoreMap":617},[621,974,975,978,981,983,985,987,989,991,993,996,998],{"class":623,"line":624},[621,976,977],{"class":627},"--user",[621,979,980],{"class":647}," $(",[621,982,835],{"class":627},[621,984,838],{"class":637},[621,986,841],{"class":647},[621,988,894],{"class":630},[621,990,832],{"class":647},[621,992,835],{"class":627},[621,994,995],{"class":637}," -g",[621,997,884],{"class":647},[621,999,678],{"class":637},[621,1001,1002,1004,1007],{"class":623,"line":644},[621,1003,790],{"class":647},[621,1005,1006],{"class":630},"\u002Fetc\u002Fpasswd:\u002Fetc\u002Fpasswd:ro",[621,1008,641],{"class":637},[621,1010,1011,1013,1016],{"class":623,"line":656},[621,1012,790],{"class":647},[621,1014,1015],{"class":630},"\u002Fetc\u002Fgroup:\u002Fetc\u002Fgroup:ro",[621,1017,641],{"class":637},[378,1019,1020],{"id":1020},"save与load",[1022,1023,1024],"blockquote",{},[16,1025,1026],{},"众所周知，因为不可抗因素，dockerhub已于2024年5月被🇨🇳封杀，所以咱们无法直接拉取镜像。",[16,1028,1029],{},"有一种本地的办法，就是把镜像打成压缩包，再扔到另一台电脑上去让docker读取。",[16,1031,1032],{},"打包：",[612,1034,1036],{"className":614,"code":1035,"language":616,"meta":617,"style":617},"docker save -o myimage.tar myimage\n",[587,1037,1038],{"__ignoreMap":617},[621,1039,1040,1043,1046,1049,1052],{"class":623,"line":624},[621,1041,1042],{"class":627},"docker",[621,1044,1045],{"class":630}," save",[621,1047,1048],{"class":637}," -o",[621,1050,1051],{"class":630}," myimage.tar",[621,1053,1054],{"class":630}," myimage\n",[16,1056,1057],{},"读取：",[612,1059,1061],{"className":614,"code":1060,"language":616,"meta":617,"style":617},"docker load -i myimage.tar\n",[587,1062,1063],{"__ignoreMap":617},[621,1064,1065,1067,1070,1073],{"class":623,"line":624},[621,1066,1042],{"class":627},[621,1068,1069],{"class":630}," load",[621,1071,1072],{"class":637}," -i",[621,1074,1075],{"class":630}," myimage.tar\n",[378,1077,1079],{"id":1078},"第三方的dockerhub库并不是dockerhub-mirror库","第三方的dockerhub库（并不是dockerhub mirror库）",[16,1081,1082],{},"可以把自己镜像上传到国内一些镜像库（images hub，不是mirror）里。",[1084,1085,1087],"h5",{"id":1086},"腾讯的tcr","腾讯的TCR",[1089,1090,1091],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":617,"searchDepth":644,"depth":644,"links":1093},[1094,1095],{"id":14,"depth":656,"text":14},{"id":26,"depth":656,"text":26},0,"0600","2024-10-03","2024-10-03-docker-jiao-cheng","\u002Fwiki\u002F2024-10-03-docker-jiao-cheng","Docker教程","md",true,false,{},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0600-docker-ming-ling-xue-xi",{"title":5,"description":617},"wiki\u002F2024-10-03-Docker教程\u002F0600-Docker命令学习","DyOl-TR7zME0RJGRN6Og_hb2_alKXKikv8oz5Wvdb3g",[1111,1117,1123,1129,1135,1141,1143,1149,1155,1161,1167,1173],{"path":1112,"stem":1113,"title":1114,"authors":1115,"date":1098,"chapterOrder":1116,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0100-jian-jie","wiki\u002F2024-10-03-Docker教程\u002F0100-简介","简介",[7],"0100",{"path":1118,"stem":1119,"title":1120,"authors":1121,"date":1098,"chapterOrder":1122,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0200-an-zhuang-docker","wiki\u002F2024-10-03-Docker教程\u002F0200-安装Docker","安装Docker",[7],"0200",{"path":1124,"stem":1125,"title":1126,"authors":1127,"date":1098,"chapterOrder":1128,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0300-docker-zhi-tong","wiki\u002F2024-10-03-Docker教程\u002F0300-Docker直通","Docker直通",[7],"0300",{"path":1130,"stem":1131,"title":1132,"authors":1133,"date":1098,"chapterOrder":1134,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0400-dockerhub-huan-yuan","wiki\u002F2024-10-03-Docker教程\u002F0400-DockerHub换源","DockerHub换源",[7],"0400",{"path":1136,"stem":1137,"title":1138,"authors":1139,"date":1098,"chapterOrder":1140,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0500-docker-rong-qi-li-de-cheng-xu-de-tu-xing-jie-mian-tan-bu-chu-lai","wiki\u002F2024-10-03-Docker教程\u002F0500-docker容器里的程序的图形界面弹不出来","docker容器里的程序的图形界面弹不出来",[7],"0500",{"path":1106,"stem":1108,"title":5,"authors":1142,"date":1098,"chapterOrder":1097,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},[7],{"path":1144,"stem":1145,"title":1146,"authors":1147,"date":1098,"chapterOrder":1148,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0650-shou-dong-chuang-jian-docker-jing-xiang","wiki\u002F2024-10-03-Docker教程\u002F0650-手动创建Docker镜像","手动创建Docker镜像",[7],"0650",{"path":1150,"stem":1151,"title":1152,"authors":1153,"date":1098,"chapterOrder":1154,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0675-vscode-yuan-cheng-kai-fa","wiki\u002F2024-10-03-Docker教程\u002F0675-VScode远程开发","VScode远程开发",[7],"0675",{"path":1156,"stem":1157,"title":1158,"authors":1159,"date":1098,"chapterOrder":1160,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F0700-ge-zhong-docker-rong-qi-bu-shu","wiki\u002F2024-10-03-Docker教程\u002F0700-各种Docker容器部署","各种Docker容器部署",[7],"0700",{"path":1162,"stem":1163,"title":1164,"authors":1165,"date":1098,"chapterOrder":1166,"chapterDepth":624,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F1000-0100-kuai-su-da-kai-zhong-duan","wiki\u002F2024-10-03-Docker教程\u002F1000-0100-快速打开终端","Docker快速打开终端",[7],"1000-0100",{"path":1168,"stem":1169,"title":1170,"authors":1171,"date":1098,"chapterOrder":1172,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1104},"\u002Fwiki\u002F2024-10-03-docker-jiao-cheng\u002F1000-docker-shi-yong-you-hua","wiki\u002F2024-10-03-Docker教程\u002F1000-Docker使用优化","Docker使用优化",[7],"1000",{"path":1100,"stem":1174,"title":1101,"authors":1175,"date":1098,"chapterOrder":1176,"chapterDepth":1096,"docKey":1099,"docRoot":1100,"docTitle":1101,"isWikiDoc":1103,"isWikiIndex":1103},"wiki\u002F2024-10-03-Docker教程\u002Findex",[7],null,[1178,1180,1183,1186],{"name":7,"image":1179},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":1181,"image":1182},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":1184,"image":1185},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":1187,"image":1188},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431905238]