原因:由于docker两个容器,里面开了samba.和ssh以及后续可能会建其它服务 ,因此做端口映射不太好。需要公司电脑能像访问正常服务器一样访问两个docker容器
服务器是CentOS 。里面安装了两个ubuntu20.04.专门跑瑞芯微的SDK .准备一个用于QT5.9.4,一个用于QT5.15.2.以下仅仅是思路。过程未完全记录
1.首先adb pull 一个ubuntu20.04. 镜像。创建一个 容器new 然后 将瑞芯微SDK完全拷贝到容器中
2.将瑞芯微SDK解压。需要按照官方安装环境一样。安装各个报。注意:部分包如果安装不上,也不需要安装。尤其像qt4-dev. 一些图形化的包。
3.编译sdk,未出错后。保存容器为镜像。复制到old.
4.配置网络
linux服务器
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 172.17.0.0/16 -o docker0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -d 0.0.0.0/0 -o eno2 -j MASQUERADE
注意:最新版本docker默认安装后,就可以ping通172.17.0.2
电脑
route -p add 172.17.0.0 mask 255.255.0.0 192.168.1.185
[bh@localhost byx]$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:92ff:fe04:db69 prefixlen 64 scopeid 0x20<link>
ether 02:42:92:04:db:69 txqueuelen 0 (Ethernet)
RX packets 569385 bytes 39478313 (37.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 647458 bytes 1301591928 (1.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:1e:67:ce:f4:d0 txqueuelen 1000 (Ethernet)
RX packets 5 bytes 300 (300.0 B)
RX errors 0 dropped 5 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xd1160000-d117ffff
eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.185 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::821e:a580:b66c:e2cc prefixlen 64 scopeid 0x20<link>
ether 00:1e:67:ce:f4:d1 txqueuelen 1000 (Ethernet)
RX packets 113164282 bytes 140574498760 (130.9 GiB)
RX errors 0 dropped 37 overruns 0 frame 0
TX packets 70469098 bytes 5707538968 (5.3 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xd1140000-d115ffff
eno3: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:1e:67:ce:f4:d2 txqueuelen 1000 (Ethernet)
RX packets 4 bytes 240 (240.0 B)
RX errors 0 dropped 4 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xd1120000-d113ffff
eno4: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:1e:67:ce:f4:d3 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xd1100000-d111ffff
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1709 bytes 152070 (148.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1709 bytes 152070 (148.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethec2a76c: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::38bc:aaff:fe86:49be prefixlen 64 scopeid 0x20<link>
ether 3a:bc:aa:86:49:be txqueuelen 0 (Ethernet)
RX packets 6 bytes 516 (516.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 516 (516.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:eb:58:a2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[bh@localhost byx]$ sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 172.17.0.0/16 -o docker0 -j MASQUERADE
[bh@localhost byx]$ sudo iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -d 0.0.0.0/0 -o eno2 -j MASQUERADE
SSH服务
测试 ssh 如果出问题按照如下操作。
首先使用root权限进入容器
docker exec -it -u root [容器号] /bin/bash
进入容器之后
apt-get update
apt-get install openssh-server
apt-get install vim
设置密码,输两次
passwd
修改配置文件
vim /etc/ssh/sshd_config
将PermitRootLogin prohibit-password修改为PermitRootLogin yes
SAMBA服务