在ubuntu上搭建docker编译环境


由于这段时间同时维护好几个项目,经常动不动环境就玩坏了T_T,所以打算记录下新建容器的操作。

创建docker容器(以18.04为例)

Docker的兼容性和轻量特性可以很轻松的实现负载的动态管理。 你可以快速扩容或方便的下线的你的应用和服务,这种速度趋近实时。 Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个Docker 容器。 容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。

  • 一致的运行环境
  • 更快速的启动时间
  • 隔离性
  • 弹性伸缩,快速扩展
  • 迁移方便
  • 持续交付和部署
    docker的好处

下载官方docker镜像

docker pull ubuntu:18.04

导入导出镜像docker

# 导出
docker save -o ubuntu1804.tar ubuntu:18.04
# 一个-o参数来指定把镜像输出到哪个文件中

# 导入
docker import /home/CM/Docker/ubuntu18.tar
# 或
docker load -i ubuntu18.tar

查看docker镜像

docker images

可以看到,这个我5周前拉下来的18.04的ubuntu镜像
在这里插入图片描述

创建新的ubuntu系统容器

docker run -it -v /宿主机目录:/容器目录 镜像名 /bin/bash
docker run -ti -v /home:/home ubuntu /bin/bash
docker run -p 8000:22 -it --restart=always d8298c58673d /bin/bash

docker run -p 5601:22 -it --restart=always -v /home/work/:/home/work workmate_u18 /bin/bash
# 各参数定义
# -v /home:/home之后就是共享主机和docker的home目录了
# -p 为容器添加端口映射
# --restart=always:容器的重启策略,可选项有no, on-failure, always, unless-stopped

这里有个更全的docker run命令讲解~~

正确退出系统方式

  1. 先按,Ctrl + p
  2. 再按,Ctrl + q
    这样系统就会在后台继续运行
    最好不要使用exit或者ctrl+d来退出,这样整个系统就退出了

进入up状态的docker

  • 首先用docker ps -a 查询容器信息
  • docker exec -it -u <容器内用户名> <CONTAINER ID或NAMES> /bin/bash
    如,docker exec -it -u cm suspicious_stonebraker /bin/bash
  • 关闭后重启:docker restart <CONTAINER ID或NAMES>

向容器内部复制文件
在容器外部执行:

docker cp /home/docker/Anaconda3-5.2.0-Linux-x86_64.sh d6df219526b6:/home
docker cp /home/docker/all_ner.h5.zip d6df219526b6:/home
docker cp /home/docker/all_ner_model_predict.py d6df219526b6:/home

~~以上一小部分参考这里

PS:还有个办法可以省去这些一直重配置docker的麻烦,就是把配置好的docker备份成镜像:

docker commit -a "author" -m "remark" a404c6c174a2  mymysql:v1

容器内环境配置

添加用户

adduser cm	//创建用户
passwd cm 	//为用户设置密码

为新用户添加sudo权限

  • 法一:(推荐)
    adduser cm sudo
    在这里插入图片描述
  • 法二:
vim /etc/sudoers

root ALL=(ALL) ALL		#在root用户下添加一行
user ALL=(ALL) ALL 用户user执行sudo时需要密码。
#user ALL=NOPASSWD:ALL 用户user执行sudo时不需要密码。

安装软件

apt-get update
apt-get install -y vim unzip wget sudo gawk bison
#安装netstat以查看端口情况
apt-get install net-tools

#openwrt官方安装建议
sudo apt install build-essential libncurses5-dev libncursesw5-dev \
	zlib1g-dev gawk  git  gettext libssl-dev xsltproc rsync wget  unzip python

#x-wrt编译环境安装建议
sudo apt install build-essential ecj fastjar file flex g++ gcc-multilib g++-multilib \
	gawk gettext git git-core java-propose-classpath libelf-dev libncurses5-dev \
	libncursesw5-dev libssl-dev python python3 python3-distutils subversion \
	unzip wget zlib1g-dev rsync qemu-utils

安装和配置ssh

#安装ssh服务器
sudo apt install openssh-server
#安装ssh客户端
sudo apt install openssh-client

sudo vim /etc/ssh/ssh_config
配置ssh服务器端:PermitRootLogin prohibit-password 改成 PermitRootLogin yes
配置ssh客户端:去掉PasswordAuthentication yes前面的注释#
#重启ssh服务生效配置
sudo /etc/init.d/ssh restart

安装git以及相关配置
安装

apt-get install git

设置用户名与邮箱(用户标识)

git config --global user.name User	#名称
git config --global user.email 12345678@163.com	#邮箱

安装git命令支持tab补全

apt-get install bash-completion -y

安装git版本控制工具

apt-get install tig -y

安装完该工具,直接使用tig命令就可以看到当前分支的代码树状图。

git免除多次输入账号密码

git config --global credential.helper store  
# 所有的git仓库都使用git账号密码
#第一次输入账号密码之后,在家目录下会有.git-credential文件
#里面保存了账号密码之后就不需要输入账户密码了,这个文件保存gitlab和github的账号
git config --system credential.helper store
# 仅用于当前git仓库,该优先级大于global
#该命令表示,当前仓库使用的gitlab账号和密码仅在该仓库生效,局部大于全局
git config -l 
#可以查看仓库基础信息,包括上游仓库url地址,仓库使用者的用户名,邮箱等信息

修改最后一次提交的注释

git commit --amend

安装npm必须按照以下顺序操作:

sudo apt install libssl1.0-dev
sudo apt install nodejs-dev
sudo apt install node-gyp
sudo apt install npm

解决容器不支持中文的问题

  • 查看容器支持的语言
    locale -a
  • 查看当前使用的字符集
    echo $LANG
  • 安装中文支持
    apt-get -y install language-pack-zh-hans
  • 更改使用的字符集
    LANG=zh_CN.utf8
  • 设置环境变量
    vim /etc/profile
    export LC_ALL=zh_CN.utf8
  • 刷新环境变量
    source /etc/profile

~~还会继续完善

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值