欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > Docker编译环境的使用(ubuntu)

Docker编译环境的使用(ubuntu)

2024/11/16 6:37:53 来源:https://blog.csdn.net/wangmeng0804/article/details/141928527  浏览:    关键词:Docker编译环境的使用(ubuntu)

目录

Ubuntu安装docker

重启docker

拉取镜像

进入docker安装软件

提交docker

添加用户到docker组

进入docker

添加build用户

停止容器

保存docker镜像

load镜像

删除容器


Ubuntu安装docker

sudo apt install docker.io

国内可用的源  

Welcome to nginx! (tencentyun.com)icon-default.png?t=O83Ahttps://ccr.ccs.tencentyun.com/

换源

在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{
"registry-mirrors": ["https://ccr.ccs.tencentyun.com/"]
}

重启docker

$ sudo systemctl daemon-reload

$ sudo systemctl restart docker

拉取镜像

sudo docker pull ubunut:16.04

进入docker安装软件

sudo docker run -it --name build3308 ubuntu:16.04 /bin/bash

安装完后exit退出docker

提交docker

docker commit -m "Added some-package" -a "build" build3308 build:3308

docker image显示如下

build@ubuntu:~$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

build 3308 4d13656ff6cf 4 minutes ago 687MB

ubuntu 16.04 b6f507652425 3 years ago 135MB

添加用户到docker组

sudo usermod -aG docker $USER

运行脚本启动容器

USER_ID=$(id -u)
GRP=$(id -g -n)
GRP_ID=$(id -g)
LOCAL_HOST=`hostname`
DOCKER_HOME="/home/$USER"if [ "$USER" == "root" ];thenDOCKER_HOME="/root"
fi
if [ ! -d "$HOME/.cache" ];thenmkdir "$HOME/.cache"
fiIMG="build:3308"docker run -it \-d \--privileged \--name build_3308 \-e DOCKER_USER=$USER \-e USER=$USER \-e DOCKER_USER_ID=$USER_ID \-e DOCKER_GRP=$GRP \-e DOCKER_GRP_ID=$GRP_ID \-e TERM="xterm-256color" \--env ROS_DOMAIN_ID=$(date +%N) \-v /tmp/.X11-unix:/tmp/.X11-unix:rw \-v /media:/media \-v $HOME/.cache:${DOCKER_HOME}/.cache \-v /etc/localtime:/etc/localtime:rw \-v /home/build/:/home/build \--net host \--shm-size 512M \-w /home/build \$IMG \/bin/bash

进入docker

sudo docker exec -u root -it build_3308 /bin/bash

添加build用户

这里的1000和build要和你宿主机上的用户名uid一致,方便后面编译出来的权限等问题

useradd -u 1000 build

查看用户信息

cat /etc/passwd

然后exit退出

停止容器

sudo docker stop build_3308

提交修改

sudo docker commit build_3308 build:3308bs

修改脚本

USER_ID=$(id -u)
GRP=$(id -g -n)
GRP_ID=$(id -g)
LOCAL_HOST=`hostname`
DOCKER_HOME="/home/$USER"if [ "$USER" == "root" ];thenDOCKER_HOME="/root"
fi
if [ ! -d "$HOME/.cache" ];thenmkdir "$HOME/.cache"
fiIMG="build:3308bs"docker run -it \-d \--privileged \--name build_3308bs \-e DOCKER_USER=$USER \-e USER=$USER \-e DOCKER_USER_ID=$USER_ID \-e DOCKER_GRP=$GRP \-e DOCKER_GRP_ID=$GRP_ID \-e TERM="xterm-256color" \--env ROS_DOMAIN_ID=$(date +%N) \-v /tmp/.X11-unix:/tmp/.X11-unix:rw \-v /media:/media \-v $HOME/.cache:${DOCKER_HOME}/.cache \-v /etc/localtime:/etc/localtime:rw \-v /home/build/:/home/build \--net host \--shm-size 512M \-w /home/build \$IMG \/bin/bash

重新启动docker

sudo ./start_docker.sh

进入docker

docker exec -u build -it build_3308bs /bin/bash

保存docker镜像

先docker images看下IMAGE ID

build@ubuntu:~/work$ sudo docker images

[sudo] password for build:

REPOSITORY TAG IMAGE ID CREATED SIZE

build 3308bs_1604 d40881c1ff67 29 minutes ago 706MB

build 3308bs 3cbe2a080c3a 18 hours ago 687MB

fed93a8b490d 20 hours ago 687MB

build 3308 4d13656ff6cf 22 hours ago 687MB

ubuntu 16.04 b6f507652425 3 years ago 135MB

build@ubuntu:~/work$

然后save

sudo docker save -o rk3308.tar build:3308bs_1604

load镜像

docker load -i rk3308.tar

删除容器

sudo docker images ps -a列出来全部

sudo docker stop (id)

sudo docker rm (id)

然后sudo docker rmi (id)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com