当前位置: 首页 > news >正文

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)

http://www.lryc.cn/news/432786.html

相关文章:

  • 认知杂谈53
  • 量子计算信息安全威胁与应对策略分析
  • Oracle(112)如何使用RMAN恢复数据库?
  • I2C通信协议
  • 使用Python实现智能信用评分系统
  • RocketMQ之发送消息源码分析
  • 使用宝塔面板安装mrdoc
  • C++操作符重载实例
  • Linux高效进程控制的实战技巧
  • 使用条件变量实现线程同步:C++实战指南
  • Spark2.x 入门: KMeans 聚类算法
  • 如何快速练习键盘盲打
  • Flask中实现WebSocket需要什么组件
  • java8 Stream流详解
  • 通信工程学习:什么是AB地址总线、DB数据总线、CD控制总线
  • CP AUTOSAR标准之EthernetInterface(AUTOSAR_SWS_EthernetInterface)(更新中……)
  • Windows系统离线安装使用pm2 管理进程
  • 4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)
  • 【深度学习】向量化
  • 基于canal的Redis缓存双写
  • 以太网交换机工作原理学习笔记
  • ECCV`24 | 蚂蚁集团开源风格控制新SOTA!StyleTokenizer:零样本精确控制图像生成
  • Flutter的升级和降级步骤
  • 计算机网络与Internet应用
  • [建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级
  • Spring Boot-自定义banner
  • 2158. 直播获奖(live)
  • python---爬取QQ音乐
  • tomato靶场攻略
  • Django+Vue3前后端分离学习(一)(项目开始时settings.py里的设置)