由于NXP的LSDK需要指定的Ubuntu 18.04版本,不是这个发行版则编译的时候会出错,由于大部分人都使用自己熟悉的社区版linux,所以我们需要使用docker虚拟这个系统以完成SDK编译。
试用了一下docker,果然很方便,下面简单记录一下过程。
安装
本人常用Debian发行版,首先安装docker支持
|
$ sudo apt-get install docker.io |
增加用户到docker群组
|
$ sudo addgroup kaoru docker |
修改默认的docker root目录,在/etc/default/docker文件的末尾增加参数。(由于本人使用的是Debian系统,所以)
|
$ sudo vi /etc/default/docker DOCKER_OPTS="--graph /data/repo/docker" |
重启docker服务
|
$ sudo /etc/init.d/docker restart |
使用
docker操作类似GIT,如果对GIT很熟的话,docker操作也会很容易理解
首先从docker源拉下18.04版本的Ubuntu裸系统镜像
|
$ docker pull ubuntu:18.04 18.04: Pulling from ubuntu 248632e87271: Already exists 1bd384343050: Already exists 69d0081dfb37: Already exists ba7177adc951: Already exists Digest: sha256:48eb09a5c832172357f172593ce5e98e027814f758f6aeaef59a7fd658e50d49 Status: Image is up to date for ubuntu:18.04 |
查看当前镜像
|
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 18.04 d71fc6939e16 12 days ago 86.18 MB |
创建一个容器并进入,使用
|
$ docker run -it --privileged -v /data:/opt d71fc6939e16 /bin/bash |
查看已创建的容器
|
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7a8c65278608 d71fc6939e16:latest "/bin/bash" 24 seconds ago Up 23 seconds elegant_tesla |
进入一个创建好的容器,如上面的CONTAINER ID:7a8c65278608
|
$ docker exec -it 7a8c65278608 /bin/bash root@7a8c65278608:/# |
SHELL退出后容器为EXIT状态,我们可以重新启动
|
$ docker start 7a8c65278608 |
如果容器内有修改需要保存,执行docker commit提交为一个新的image,在用docker images查看可看到有2个image
|
$ docker commit 7a8c65278608 ubuntu:new 4f586efc3c33047b4d56b63c01c54c77a23007a1e18bb228bc5f7f22885ea092 $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu new 4f586efc3c33 8 seconds ago 86.18 MB ubuntu 18.04 d71fc6939e16 12 days ago 86.18 MB |
删除image
|
$ docker rmi 4f586efc3c33 Untagged: ubuntu:new Deleted: 4f586efc3c33047b4d56b63c01c54c77a23007a1e18bb228bc5f7f22885ea092 |