查找鏡像
使用docker search命令可以搜索appium鏡像
docker search appium
拉取鏡像
docker pull appium/appium
在拉取鏡像的時候,碰到了報錯Could not reach any registry endpoint
,有人說這可能是docker版本太低導致的,由於Centos6支持的docker版本有限,所以換了個Centos7繼續pull。centos7安裝docker請戳這里-->《Centos7下安裝Docker(詳細安裝教程)》
還有一個問題,使用DaoCloud配置鏡像加速器拉取appium真是慢的一批,最后配置了阿里雲鏡像加速器。配置阿里雲加速請戳這里-->《CentOS下安裝docker並使用阿里雲鏡像加速器》
啟動容器
啟動appium容器,並將端口映射為4723,名稱命名為appium_1
docker run --privileged -d -p 4723:4723 --name appium_1 appium/appium
# --privileged:使用該參數,容器內的root擁有真正的root權限,否則容器內的root只是外部的一個普通用戶權限
# -d:以分離模式啟動容器,分離模式指的是在后台運行,而前景模式指的是在前台運行。默認分離模式設置為False
# -p:指定要映射的ip和端口。支持的格式有:hostPort:containerPort,ip:hostPort:containerPort,ip::containerPort。這里用的是第一種:4723:4723,指的是將本地(centos7)的5000端口映射到容器的5000端口
# --name:為容器指定一個名字
查看運行狀態的容器
docker ps
安裝jdk
我的Centos7上已經安裝好了jdk,如果沒有安裝的請戳這里-->《Centos7安裝JDK8以及環境配置》
安裝adb
沒有安裝的請戳這里-->《centos7安裝adb》
模擬器設置
更改連接方式
將夜神模式其的usb連接方式更改為tcpip的方式
C:\Users\beck
λ adb devices
List of devices attached
127.0.0.1:62025 device
C:\Users\beck
λ adb -s 127.0.0.1:62025 tcpip 6666
restarting in TCP mode port: 6666
更改橋接
打開系統設置-->屬性設置-->網絡設置,勾選開啟網絡橋接模式,這時需要先裝個插件,安裝好后選擇靜態IP,由於我的模擬器是安裝在windows系統上,windows系統ip為192.168.0.101,這里我設置為192.168.0.126,設置網關192.168.0.1,點擊保存設置,重啟模擬器
重啟后,關閉WLAN,再打開,點擊設置,查看ip地址,可以看到ip變為192.168.0.102
這里不知道是不是夜神模擬器的問題,橋接后ip並未改變過來,所以又重新把橋接的ip從192.168.0.126設置為192.168.0.102
docker連接模擬器
docker exec -it appium_1 adb connect 192.168.0.102:6666
# docker exec:在運行的容器中執行命令
# -i:即使沒有附加也保持STDIN打開
# -t:分配一個偽終端
看到connected to 192.168.0.102:6666,說明已連接成功
參考文章
《「docker實戰篇」python的docker-創建appium容器以及設置appium容器連接安卓模擬器(31)》
《Docker:Docker Appium 鏡像連接夜安卓神模擬器,並處理 connection refused 異常》
《Docker exec 命令》