[{"data":1,"prerenderedAt":848},["ShallowReactive",2],{"wiki-page-/wiki/2024-10-03-docker-jiao-cheng/ch3-docker-zhi-tong":3,"wiki-doc-items-/wiki/2024-10-03-docker-jiao-cheng/ch3-docker-zhi-tong":783},{"id":4,"title":5,"body":6,"chapter":769,"chapterSort":770,"date":771,"description":20,"docKey":772,"docRoot":773,"docTitle":774,"extension":775,"isWikiDoc":369,"isWikiIndex":776,"layout":777,"meta":778,"navigation":369,"path":779,"seo":780,"stem":781,"wikiDepth":45,"__hash__":782},"content/wiki/2024-10-03-Docker教程/ch3-Docker直通.md","Docker直通",{"type":7,"value":8,"toc":763},"minimark",[9,14,22,29,32,75,80,89,92,97,101,109,114,122,126,129,134,139,242,247,268,273,294,299,317,321,326,355,360,415,420,468,479,496,504,520,528,542,549,552,560,563,593,598,603,607,610,613,619,622,625,628,697,704,709,712,736,739,756,759],[10,11,13],"h3",{"id":12},"usb直通","USB直通",[15,16,17],"p",{},[18,19],"img",{"alt":20,"src":21},"","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/10/03/image5.webp",[23,24,25],"ol",{},[26,27,28],"li",{},"方法一(不是很推荐新手)：",[15,30,31],{},"创建容器的时候把需要的设备加在红色部分这里即可。可以通过下面的命令查看想要的设备的名字。",[33,34,38],"pre",{"className":35,"code":36,"language":37,"meta":20,"style":20},"language-bash shiki shiki-themes github-light github-dark","ls /dev\n#例如\n--device=/dev/tty_USB0\n","bash",[39,40,41,54,61],"code",{"__ignoreMap":20},[42,43,46,50],"span",{"class":44,"line":45},"line",1,[42,47,49],{"class":48},"sScJk","ls",[42,51,53],{"class":52},"sZZnC"," /dev\n",[42,55,57],{"class":44,"line":56},2,[42,58,60],{"class":59},"sJ8bj","#例如\n",[42,62,64,68,72],{"class":44,"line":63},3,[42,65,67],{"class":66},"sVt8B","--device",[42,69,71],{"class":70},"szBVR","=",[42,73,74],{"class":52},"/dev/tty_USB0\n",[23,76,77],{"start":56},[26,78,79],{},"方法二(个人更加推荐，不用重新再挂载了，虽然安全性会降低，但是别人利用安全权限能够攻击你的概率很低很低，企业服务器才需要提防)：",[33,81,83],{"className":35,"code":82,"language":37,"meta":20,"style":20},"--privileged\n",[39,84,85],{"__ignoreMap":20},[42,86,87],{"class":44,"line":45},[42,88,82],{"class":48},[15,90,91],{},"直接添加一行绿色部分，然后所有设备都会被挂载到docker了。(红色部分就不用写了）",[15,93,94],{},[18,95],{"alt":20,"src":96},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/10/03/image6.webp",[10,98,100],{"id":99},"nvidia显卡直通","NVIDIA显卡直通",[15,102,103,104,108],{},"NVIDIA Container Toolkit使用户 ",[105,106,107],"strong",{},"能够构建和运行GPU加速的容器"," 。该工具包包括一个容器运行库和实用程序，用于自动配置容器以利用NVIDIA GPU。",[15,110,111],{},[18,112],{"alt":20,"src":113},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/10/03/image7.webp",[15,115,116],{},[117,118,119],"a",{"href":119,"rel":120},"https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html",[121],"nofollow",[123,124,125],"h4",{"id":125},"安装",[15,127,128],{},"（尽量能看官方就看官方的，安装方式可能会更新）",[130,131,133],"h5",{"id":132},"ubuntu","Ubuntu",[23,135,136],{},[26,137,138],{},"配置存储库 并更新",[33,140,142],{"className":35,"code":141,"language":37,"meta":20,"style":20},"curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \\\n  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \\\n    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \\\n    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \\\n  && \\\n    sudo apt-get update\n",[39,143,144,177,197,209,223,231],{"__ignoreMap":20},[42,145,146,149,153,156,159,162,165,168,171,174],{"class":44,"line":45},[42,147,148],{"class":48},"curl",[42,150,152],{"class":151},"sj4cs"," -fsSL",[42,154,155],{"class":52}," https://nvidia.github.io/libnvidia-container/gpgkey",[42,157,158],{"class":70}," |",[42,160,161],{"class":48}," sudo",[42,163,164],{"class":52}," gpg",[42,166,167],{"class":151}," --dearmor",[42,169,170],{"class":151}," -o",[42,172,173],{"class":52}," /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg",[42,175,176],{"class":151}," \\\n",[42,178,179,182,184,187,190,193,195],{"class":44,"line":56},[42,180,181],{"class":66},"  && ",[42,183,148],{"class":48},[42,185,186],{"class":151}," -s",[42,188,189],{"class":151}," -L",[42,191,192],{"class":52}," https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list",[42,194,158],{"class":70},[42,196,176],{"class":151},[42,198,199,202,205,207],{"class":44,"line":63},[42,200,201],{"class":48},"    sed",[42,203,204],{"class":52}," 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'",[42,206,158],{"class":70},[42,208,176],{"class":151},[42,210,212,215,218,221],{"class":44,"line":211},4,[42,213,214],{"class":48},"    sudo",[42,216,217],{"class":52}," tee",[42,219,220],{"class":52}," /etc/apt/sources.list.d/nvidia-container-toolkit.list",[42,222,176],{"class":151},[42,224,226,228],{"class":44,"line":225},5,[42,227,181],{"class":66},[42,229,230],{"class":151},"\\\n",[42,232,234,236,239],{"class":44,"line":233},6,[42,235,214],{"class":48},[42,237,238],{"class":52}," apt-get",[42,240,241],{"class":52}," update\n",[23,243,244],{"start":56},[26,245,246],{},"安装nvidia-docker2",[33,248,250],{"className":35,"code":249,"language":37,"meta":20,"style":20},"sudo apt-get install -y nvidia-docker2\n",[39,251,252],{"__ignoreMap":20},[42,253,254,257,259,262,265],{"class":44,"line":45},[42,255,256],{"class":48},"sudo",[42,258,238],{"class":52},[42,260,261],{"class":52}," install",[42,263,264],{"class":151}," -y",[42,266,267],{"class":52}," nvidia-docker2\n",[23,269,270],{"start":63},[26,271,272],{},"使用nvidia-ctk命令配置container runtime",[33,274,276],{"className":35,"code":275,"language":37,"meta":20,"style":20},"sudo nvidia-ctk runtime configure --runtime=docker\n",[39,277,278],{"__ignoreMap":20},[42,279,280,282,285,288,291],{"class":44,"line":45},[42,281,256],{"class":48},[42,283,284],{"class":52}," nvidia-ctk",[42,286,287],{"class":52}," runtime",[42,289,290],{"class":52}," configure",[42,292,293],{"class":151}," --runtime=docker\n",[23,295,296],{"start":211},[26,297,298],{},"重启docker服务:",[33,300,302],{"className":35,"code":301,"language":37,"meta":20,"style":20},"sudo systemctl restart docker\n",[39,303,304],{"__ignoreMap":20},[42,305,306,308,311,314],{"class":44,"line":45},[42,307,256],{"class":48},[42,309,310],{"class":52}," systemctl",[42,312,313],{"class":52}," restart",[42,315,316],{"class":52}," docker\n",[130,318,320],{"id":319},"fedora","Fedora",[23,322,323],{},[26,324,325],{},"Configure the production repository:",[33,327,329],{"className":35,"code":328,"language":37,"meta":20,"style":20},"curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \\\nsudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo\n",[39,330,331,346],{"__ignoreMap":20},[42,332,333,335,337,339,342,344],{"class":44,"line":45},[42,334,148],{"class":48},[42,336,186],{"class":151},[42,338,189],{"class":151},[42,340,341],{"class":52}," https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo",[42,343,158],{"class":70},[42,345,176],{"class":151},[42,347,348,350,352],{"class":44,"line":56},[42,349,256],{"class":48},[42,351,217],{"class":52},[42,353,354],{"class":52}," /etc/yum.repos.d/nvidia-container-toolkit.repo\n",[23,356,357],{"start":56},[26,358,359],{},"Optionally, configure the repository to use experimental packages:",[33,361,363],{"className":35,"code":362,"language":37,"meta":20,"style":20},"\n# 如果是RHEL或者Rocky（DNF4）\nsudo dnf config-manager --add-repo https://nvidia.github.io/libnvidia-container/stable/rpm/libnvidia-container.repo\n\n# 如果是Feodra41+（DNF5）\nsudo dnf config-manager addrepo --from-repofile=https://nvidia.github.io/libnvidia-container/stable/rpm/libnvidia-container.repo\n",[39,364,365,371,376,392,396,401],{"__ignoreMap":20},[42,366,367],{"class":44,"line":45},[42,368,370],{"emptyLinePlaceholder":369},true,"\n",[42,372,373],{"class":44,"line":56},[42,374,375],{"class":59},"# 如果是RHEL或者Rocky（DNF4）\n",[42,377,378,380,383,386,389],{"class":44,"line":63},[42,379,256],{"class":48},[42,381,382],{"class":52}," dnf",[42,384,385],{"class":52}," config-manager",[42,387,388],{"class":151}," --add-repo",[42,390,391],{"class":52}," https://nvidia.github.io/libnvidia-container/stable/rpm/libnvidia-container.repo\n",[42,393,394],{"class":44,"line":211},[42,395,370],{"emptyLinePlaceholder":369},[42,397,398],{"class":44,"line":225},[42,399,400],{"class":59},"# 如果是Feodra41+（DNF5）\n",[42,402,403,405,407,409,412],{"class":44,"line":233},[42,404,256],{"class":48},[42,406,382],{"class":52},[42,408,385],{"class":52},[42,410,411],{"class":52}," addrepo",[42,413,414],{"class":151}," --from-repofile=https://nvidia.github.io/libnvidia-container/stable/rpm/libnvidia-container.repo\n",[23,416,417],{"start":63},[26,418,419],{},"Install the NVIDIA Container Toolkit packages:",[33,421,423],{"className":35,"code":422,"language":37,"meta":20,"style":20},"\n# 如果是RHEL或者Rocky\nsudo dnf install -y nvidia-container-toolkit\n\n# 如果是Fedora\nsudo dnf install -y nvidia-container-toolkit\n",[39,424,425,429,434,447,451,456],{"__ignoreMap":20},[42,426,427],{"class":44,"line":45},[42,428,370],{"emptyLinePlaceholder":369},[42,430,431],{"class":44,"line":56},[42,432,433],{"class":59},"# 如果是RHEL或者Rocky\n",[42,435,436,438,440,442,444],{"class":44,"line":63},[42,437,256],{"class":48},[42,439,382],{"class":52},[42,441,261],{"class":52},[42,443,264],{"class":151},[42,445,446],{"class":52}," nvidia-container-toolkit\n",[42,448,449],{"class":44,"line":211},[42,450,370],{"emptyLinePlaceholder":369},[42,452,453],{"class":44,"line":225},[42,454,455],{"class":59},"# 如果是Fedora\n",[42,457,458,460,462,464,466],{"class":44,"line":233},[42,459,256],{"class":48},[42,461,382],{"class":52},[42,463,261],{"class":52},[42,465,264],{"class":151},[42,467,446],{"class":52},[23,469,470],{"start":211},[26,471,472,474,475,478],{},[105,473,246],{}," ： 在Fedora上使用",[39,476,477],{},"dnf","进行安装。",[33,480,482],{"className":35,"code":481,"language":37,"meta":20,"style":20},"sudo dnf install -y nvidia-docker2\n",[39,483,484],{"__ignoreMap":20},[42,485,486,488,490,492,494],{"class":44,"line":45},[42,487,256],{"class":48},[42,489,382],{"class":52},[42,491,261],{"class":52},[42,493,264],{"class":151},[42,495,267],{"class":52},[23,497,498],{"start":225},[26,499,500,503],{},[105,501,502],{},"使用nvidia-ctk命令配置容器运行时"," ： 这个命令用于配置NVIDIA Container Toolkit与Docker集成。命令如下：",[33,505,506],{"className":35,"code":275,"language":37,"meta":20,"style":20},[39,507,508],{"__ignoreMap":20},[42,509,510,512,514,516,518],{"class":44,"line":45},[42,511,256],{"class":48},[42,513,284],{"class":52},[42,515,287],{"class":52},[42,517,290],{"class":52},[42,519,293],{"class":151},[23,521,522],{"start":233},[26,523,524,527],{},[105,525,526],{},"重启Docker服务"," ： 完成配置后，必须重启Docker服务以使更改生效：",[33,529,530],{"className":35,"code":301,"language":37,"meta":20,"style":20},[39,531,532],{"__ignoreMap":20},[42,533,534,536,538,540],{"class":44,"line":45},[42,535,256],{"class":48},[42,537,310],{"class":52},[42,539,313],{"class":52},[42,541,316],{"class":52},[15,543,544,545,548],{},"这些步骤执行后，Docker将使用NVIDIA Container Runtime，并支持GPU加速的容器运行。你可以使用",[39,546,547],{},"nvidia-smi","命令来验证容器中的NVIDIA GPU是否可用。",[123,550,551],{"id":551},"测试是否可用",[23,553,554],{},[26,555,556,559],{},[105,557,558],{},"运行nvidia cuda 容器进行测试"," ：",[15,561,562],{},"可以使用下面指令进行测试，docker会自动从nvidia/cuda拉取11.0.3-base-ubuntu20.04镜像，并创建一个运行一次即删除的容器。",[33,564,566],{"className":35,"code":565,"language":37,"meta":20,"style":20},"sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi\n",[39,567,568],{"__ignoreMap":20},[42,569,570,572,575,578,581,584,587,590],{"class":44,"line":45},[42,571,256],{"class":48},[42,573,574],{"class":52}," docker",[42,576,577],{"class":52}," run",[42,579,580],{"class":151}," --rm",[42,582,583],{"class":151}," --gpus",[42,585,586],{"class":52}," all",[42,588,589],{"class":52}," nvidia/cuda:11.0.3-base-ubuntu20.04",[42,591,592],{"class":52}," nvidia-smi\n",[15,594,595],{},[18,596],{"alt":20,"src":597},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/10/03/image8.webp",[15,599,600],{},[18,601],{"alt":20,"src":602},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/10/03/image9.webp",[10,604,606],{"id":605},"docker配置cuda和cudnn","Docker配置CUDA和CuDNN",[15,608,609],{},"如果你不需要自己创建Docker镜像，直接使用学长或者其他人创建好的镜像，则不用看该章节，容器的CUDA和CuDNN是和本地完全隔离的环境，你本地有没有CUDA都无所谓，但英伟达驱动版本必须满足CUDA的最低版本要求。",[15,611,612],{},"下面是如果你想自己创建镜像，则可以在学会如何创建容器的镜像后再回来看本节：",[15,614,615],{},[117,616,617],{"href":617,"rel":618},"https://hub.docker.com/r/nvidia/cuda",[121],[15,620,621],{},"在上方这个网站中，英伟达都帮我们配置好了CUDA和CuDNN了，我们根本不需要自己去配置了，比传统方式要简单太多太多了。",[15,623,624],{},"我们只需要找到对应的Docker镜像当底包即可。",[15,626,627],{},"CUDA镜像有三个类型，如下，如果我们需要编译OpenCV4,那么需要使用devel版的CUDA。",[629,630,631,651],"table",{},[632,633,634],"thead",{},[635,636,637,642,645,648],"tr",{},[638,639,641],"th",{"align":640},"left","镜像类型",[638,643,644],{"align":640},"适用场景",[638,646,647],{"align":640},"示例标签",[638,649,650],{"align":640},"大小",[652,653,654,669,683],"tbody",{},[635,655,656,660,663,666],{},[657,658,659],"td",{"align":640},"base",[657,661,662],{"align":640},"仅需 CUDA 运行时库",[657,664,665],{"align":640},"12.4.0-base-ubuntu22.04",[657,667,668],{"align":640},"~240MB",[635,670,671,674,677,680],{},[657,672,673],{"align":640},"runtime",[657,675,676],{"align":640},"部署编译后的应用（含数学库）",[657,678,679],{"align":640},"12.4.0-runtime-ubuntu22.04",[657,681,682],{"align":640},"~2GB",[635,684,685,688,691,694],{},[657,686,687],{"align":640},"devel",[657,689,690],{"align":640},"开发环境（含编译工具）",[657,692,693],{"align":640},"12.4.0-devel-ubuntu22.04",[657,695,696],{"align":640},"~3GB",[15,698,699,700,703],{},"我示例一个，比如我想用在Ubuntu24.04上用CUDA12.6和CuDNN，那么就选择",[39,701,702],{},"nvidia/cuda:12.6.0-cudnn-devel-ubuntu24.04","。这个镜像既有CUDA-devel也有CuDNN，而且还是基于Ubuntu24.04的。",[15,705,706],{},[18,707],{"alt":20,"src":708},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/10/03/image10.webp",[15,710,711],{},"在dockerfile里就可以开头这么写。",[33,713,717],{"className":714,"code":715,"language":716,"meta":20,"style":20},"language-dockerfile shiki shiki-themes github-light github-dark","\n# 基于NVIDIA官方CUDA 12.6和CuDNN基础镜像\nFROM nvidia/cuda:12.6.0-cudnn-devel-ubuntu24.04\n","dockerfile",[39,718,719,723,728],{"__ignoreMap":20},[42,720,721],{"class":44,"line":45},[42,722,370],{"emptyLinePlaceholder":369},[42,724,725],{"class":44,"line":56},[42,726,727],{"class":59},"# 基于NVIDIA官方CUDA 12.6和CuDNN基础镜像\n",[42,729,730,733],{"class":44,"line":63},[42,731,732],{"class":70},"FROM",[42,734,735],{"class":66}," nvidia/cuda:12.6.0-cudnn-devel-ubuntu24.04\n",[10,737,738],{"id":738},"配置以太网",[33,740,742],{"className":35,"code":741,"language":37,"meta":20,"style":20},"--net=host \\\n",[39,743,744],{"__ignoreMap":20},[42,745,746,749,751,754],{"class":44,"line":45},[42,747,748],{"class":66},"--net",[42,750,71],{"class":70},[42,752,753],{"class":52},"host",[42,755,176],{"class":48},[15,757,758],{},"启动参数里加上这行即可。具体在下方。",[760,761,762],"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":20,"searchDepth":56,"depth":56,"links":764},[765,766,767,768],{"id":12,"depth":63,"text":13},{"id":99,"depth":63,"text":100},{"id":605,"depth":63,"text":606},{"id":738,"depth":63,"text":738},"3",3000000,"2024-10-03","2024-10-03-docker-jiao-cheng","/wiki/2024-10-03-docker-jiao-cheng","Docker教程","md",false,null,{},"/wiki/2024-10-03-docker-jiao-cheng/ch3-docker-zhi-tong",{"title":5,"description":20},"wiki/2024-10-03-Docker教程/ch3-Docker直通","RO2rkAdVTknBDztZi3HSby0NyVCu9W9MCleSv98rgg0",[784,790,796,802,808,809,815,821,827,833,839,845],{"path":785,"stem":786,"title":787,"date":771,"chapter":788,"chapterSort":789,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch1-jian-jie","wiki/2024-10-03-Docker教程/ch1-简介","简介","1",1000000,{"path":791,"stem":792,"title":793,"date":771,"chapter":794,"chapterSort":795,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch10-1-kuai-su-da-kai-zhong-duan","wiki/2024-10-03-Docker教程/ch10-1-快速打开终端","Docker快速打开终端","10.1",10010000,{"path":797,"stem":798,"title":799,"date":771,"chapter":800,"chapterSort":801,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch10-docker-shi-yong-you-hua","wiki/2024-10-03-Docker教程/ch10-Docker使用优化","Docker使用优化","10",10000000,{"path":803,"stem":804,"title":805,"date":771,"chapter":806,"chapterSort":807,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch2-an-zhuang-docker","wiki/2024-10-03-Docker教程/ch2-安装Docker","安装Docker","2",2000000,{"path":779,"stem":781,"title":5,"date":771,"chapter":769,"chapterSort":770,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},{"path":810,"stem":811,"title":812,"date":771,"chapter":813,"chapterSort":814,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch4-dockerhub-huan-yuan","wiki/2024-10-03-Docker教程/ch4-DockerHub换源","DockerHub换源","4",4000000,{"path":816,"stem":817,"title":818,"date":771,"chapter":819,"chapterSort":820,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch5-docker-rong-qi-li-de-cheng-xu-de-tu-xing-jie-mian-tan-bu-chu-lai","wiki/2024-10-03-Docker教程/ch5-docker容器里的程序的图形界面弹不出来","docker容器里的程序的图形界面弹不出来","5",5000000,{"path":822,"stem":823,"title":824,"date":771,"chapter":825,"chapterSort":826,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch6-docker-ming-ling-xue-xi","wiki/2024-10-03-Docker教程/ch6-Docker命令学习","Docker命令学习","6",6000000,{"path":828,"stem":829,"title":830,"date":771,"chapter":831,"chapterSort":832,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch7-ge-zhong-docker-rong-qi-bu-shu","wiki/2024-10-03-Docker教程/ch7-各种Docker容器部署","各种Docker容器部署","7",7000000,{"path":834,"stem":835,"title":836,"date":771,"chapter":837,"chapterSort":838,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch8-shou-dong-chuang-jian-docker-jing-xiang","wiki/2024-10-03-Docker教程/ch8-手动创建Docker镜像","手动创建Docker镜像","8",8000000,{"path":840,"stem":841,"title":842,"date":771,"chapter":843,"chapterSort":844,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":776},"/wiki/2024-10-03-docker-jiao-cheng/ch9-vscode-yuan-cheng-kai-fa","wiki/2024-10-03-Docker教程/ch9-VScode远程开发","VScode远程开发","9",9000000,{"path":773,"stem":846,"title":774,"date":771,"chapter":777,"chapterSort":847,"docKey":772,"docRoot":773,"docTitle":774,"isWikiDoc":369,"isWikiIndex":369},"wiki/2024-10-03-Docker教程/index",0,1778560327956]