ubuntu环境搭建
由于这段时间同时维护好几个项目,经常动不动环境就玩坏了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
正确退出系统方式
- 先按,Ctrl + p
- 再按,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
~~还会继续完善