MAC的docker中運行GUI程序


如何在MAC的docker中運行GUI程序

1、下載docker

2、下載XQuartz

3、設置XQuqrtz參數,“允許從網絡連接連接”

4、重新啟動XQurtz 2.7.11( MacOS 10.15版本,需要2.7版本支持)

5、運行xhost並允許本機連接(在終端輸入如下兩行命令)

```
export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost + $IP
```

5.5、如果出現xhost失敗:xhost: unable to open display “”,嘗試重啟電腦(還是不行就沒辦法了)

6、執行docker,run命令或者exec命令都可以(-e DISPLAY=$IP:0參數是必須的,-it可選,具體命令請另行查找),例:下圖

docker exec -it -e DISPLAY=$IP:0 containerName /bin/bash
————————————————
版權聲明:本文為CSDN博主「whu_swh」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_40037872/article/details/103248552

 

 

#!/bin/bash
# -----------------------------------------------------------------
# FileName: conf.cnf
# Date: 2020-01-09
# Author: jiftle
# Description:
# -----------------------------------------------------------------
DockerKey="dev-env"
DockerVer="latest"

# ------- 處理GUI顯示的問題,原理:x11共享 -------
IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')



#!/bin/bash
# -----------------------------------------------------------------
# FileName: exec.sh
# Date: 2020-01-09
# Author: jiftle
# Description:
# -----------------------------------------------------------------
. ./conf.cnf

echo "  |--> 當前主機IP: $IP"

xhost + $IP

# docker exec -it ${DockerKey} bash
docker exec -it -e DISPLAY=$IP:0 dev-env bash

#!/bin/bash
# -----------------------------------------------------------------
# FileName: run.sh
# Date: 2020-01-09
# Author: jiftle
# Description:
# -----------------------------------------------------------------
. ./conf.cnf

echo "  |--> 當前主機IP: $IP"
# --------------- 定義變量 ------------------
GitPath="${HOME}/tg-git"
HostIp="$IP"

echo "------------- 運行[${DockerKey}:${DockerVer}]鏡像的容器 ------------"

echo "---> 開始啟動[${DockerKey}:${DockerVer}] Docker"

# -e GDK_SCALE \
# -e GDK_DPI_SCALE \
# ----------- 運行容器 ------------
docker run -itd \
`# 注釋請忽略,----------- 設置名稱 -------------` \
--name="${DockerKey}" \
`# 注釋請忽略,----------- 工作目錄映射 -------------` \
-w /root `# 默認工作目錄` \
-v ${HOME}:/home/john `# 默認工作目錄,映射` \
-v ${GitPath}:/home/john/git `# git倉庫目錄` \
`# 注釋請忽略,----------- 用戶密鑰 -------------` \
-v ${HOME}/.ssh:/root/.ssh `# .ssh密鑰` \
`# 注釋請忽略,----------- 端口映射 -------------` \
-p 8022:22 `# ssh端口` \
-p 8001:8001 `# 日志倉庫,預覽服務` \
-p 8080:8080 `# web程序調試端口` \
-h "${DockerKey}" `# 機器名` \
--restart=always `# 自啟動,容易導致掛載的分區,晚於docker` \
`# 注釋請忽略,----------- 圖形界面 -------------` \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=${HostIp}:0 \
`# 鏡像名` \
${DockerKey}:${DockerVer}
echo "---> 啟動[${DockerKey}:${DockerVer}] Docker完畢"





 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM