本文基于HD-RK3568-IOT評(píng)估板演示Debian系統(tǒng)安裝Docker,該方法適用于RK356X全系產(chǎn)品。
HD-RK3568-IOT評(píng)估板基于HD-RK3568-CORE 工業(yè)級(jí)核心板設(shè)計(jì)(雙網(wǎng)口、雙CAN、5路串口),接口豐富,適用于工業(yè)現(xiàn)場(chǎng)應(yīng)用需求,亦方便用戶評(píng)估核心板及CPU 的性能。適用于工業(yè)自動(dòng)化控制、人機(jī)界面、中小型醫(yī)療分析器、電力等多種行業(yè)應(yīng)用。
使用 Docker 需要內(nèi)核支持 CGROUP、BRIDGE 等功能,如果內(nèi)核中未開(kāi)啟相關(guān)配置,安裝或運(yùn)行 Docker 會(huì)出現(xiàn)各種錯(cuò)誤。Docker開(kāi)源團(tuán)隊(duì)提供了一個(gè)腳本https://github.com/moby/moby/blob/master/contrib/check-config.sh,用以檢測(cè)內(nèi)核配置是否符合Docker運(yùn)行的要求。
下載腳本到源碼內(nèi)核目錄下。輸入如下命令:
chmod 777 check-config.sh
./check-config.sh .config
|注:.config需要在內(nèi)核配置完后才會(huì)生成
check-config.sh使用方法如下:
# ./check_config.sh ./kernel/.config
info: reading kernel config from ./kernel/.config ...
Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- apparmor: enabled and tools installed
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: missing
- CONFIG_KEYS: enabled
- CONFIG_VETH: missing
- CONFIG_BRIDGE: missing
- CONFIG_BRIDGE_NETFILTER: missing
- CONFIG_IP_NF_FILTER: missing
- CONFIG_IP_NF_TARGET_MASQUERADE: missing
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: missing
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: missing
- CONFIG_NETFILTER_XT_MATCH_IPVS: missing
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: missing
- CONFIG_POSIX_MQUEUE: missing
Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_SECCOMP_FILTER: enabled
- CONFIG_CGROUP_PIDS: missing
- CONFIG_MEMCG_SWAP: missing
- CONFIG_MEMCG_SWAP_ENABLED: missing
- CONFIG_BLK_CGROUP: missing
- CONFIG_BLK_DEV_THROTTLING: missing
- CONFIG_CGROUP_PERF: missing
- CONFIG_CGROUP_HUGETLB: missing
- CONFIG_NET_CLS_CGROUP: missing
- CONFIG_CGROUP_NET_PRIO: missing
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: missing
- CONFIG_IP_NF_TARGET_REDIRECT: missing
- CONFIG_IP_VS: missing
- CONFIG_IP_VS_NFCT: missing
- CONFIG_IP_VS_PROTO_TCP: missing
- CONFIG_IP_VS_PROTO_UDP: missing
- CONFIG_IP_VS_RR: missing
- CONFIG_SECURITY_SELINUX: missing
- CONFIG_SECURITY_APPARMOR: missing
執(zhí)行以下命令安裝Docker:
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
echo "{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}" > /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker
修改配置文件/etc/docker/daemon.json,配置完后重啟系統(tǒng)。
{"registry-mirrors": [
"https://ung2thfc.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"]}
root@hd-rk3568:~ $ docker run hello-world
若打印信息提示“Hello from Decoker !”則說(shuō)明已經(jīng)安裝成功,驗(yàn)證通過(guò),
創(chuàng)建并啟動(dòng)一個(gè)新的容器 | docker run | docker run -d --name my-container my-image |
啟動(dòng)已創(chuàng)建的容器 | docker start | docker start my-container |
停止已創(chuàng)建的容器 | docker stop | docker stop my-container |
列出所有正在運(yùn)行的容器 | docker ps | docker ps -a |
列出所有本地鏡像 | docker images | docker images -a |
刪除已停止的容器 | docker rm | docker rm my-container |
刪除本地鏡像 | docker rmi | docker rmi my-image:1.0.0 |
在正在運(yùn)行的容器中執(zhí)行命令 | docker exec | docker exec -it my-container bash |