x86服务器配置教程-张九同学长
基于docker的服务器管理
x86服务器配置教程
基本信息:
板卡:2080ti、寒武纪npu
架构:x86_64
系统:Ubuntu18.04
一、docker
1.1、安装docker
apt install docker.io
1.1.2、新建docker用户组
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
sudo groupadd docker #添加docker用户组
sudo gpasswd -a username docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
1.1.3、测试docker
docker version
docker run hello-world
1.2、docker 拉取镜像
1.2.1、docker命令
进入容器命令:
docker exec -it 容器ID /bin/bash
或者
docker exec -it 容器的name bash
退出容器命令
exit
删除docker命令
docker rm dockerID
删除镜像命令
docker rmi imagesID
1.2.2、 docker拉取gitea
docker pull gitea/gitea:latest
sudo mkdir -p /home/zjt/GiteaDocker
#运行docker容器
docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /home/zjt/GiteaDocker:/data gitea/gitea:latest
1.2.3、docker拉取mysql
docker pull mysql
dock docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxxxxx mysql
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- **MYSQL_ROOT_PASSWORD=xxxxxx:设置 MySQL 服务 root 用户的密码。
1.3 docker自动上传镜像
1.3.1 编写makefile文件
cd /home/zjt/docker_file
vim Makefile
下面是makefile文件内容
tag:
docker tag mysql:5.7.27 1008zjt/mysql
pull:tag
docker push 1008zjt/mysql
1.3.2 编写shell脚本pull.sh
内容如下:
make pull
1.3.3 使用crontab 自动运行脚本
1、首先crontab -e 编辑定时任务
2、按 【Ctrl + X】,如果没有改动会直接退出,否则会先跳到下一个界面
(这一步也可以先使用【Ctrl + O】写入,再用【Ctrl + X】退出)
3、直接按 【Y】,再进入下一个界面,如下图:
(我印象里以前不是这样子的啊,可能是老了,记错了)
4、【Ctrl + M】 可以保存
1.4 docker自启动
1.5 docker 镜像位置
docker info
二、配置mysql
2.1 创建仓库
在数据库实例上,以根用户身份登录数据库控制台:
mysql -u root -p
根据提示输入密码。
-
创建将由Gitea使用的数据库用户,并通过密码进行身份验证。本示例使用
'gitea'
密码。请为您的实例使用安全密码。CREATE USER 'zjt' IDENTIFIED BY 'xxxxxxxxx';
适当替换上面的用户名和密码。
-
使用UTF-8字符集和排序规则创建数据库。确保使用
utf8mb4
charset代替,utf8
因为前者支持Basic Multilingual Plane之外的所有Unicode字符(包括emoji表情)。另外,根据您的预期内容选择排序规则。如有疑问,请使用unicode_ci
或general_ci
。CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
适当替换数据库名称。
-
将数据库的所有特权授予上面创建的数据库用户。
GRANT ALL PRIVILEGES ON giteadb.* TO 'zjt'; FLUSH PRIVILEGES;
-
从数据库控制台退出
exit
。 -
在您的Gitea服务器上,测试与数据库的连接:
mysql -u zjt -h 192.168.1.164 -p giteadb
其中,
gitea
是数据库用户名,giteadb
是数据库名称和192.168.1.164是数据库实例的IP地址。省略-h
本地数据库选项。2.2您应该已连接到数据库。
2.2 链接gitea
1、进入192.168.1.164:10080//此处为gitea镜像的地址
2、在此处设置数据库的名称、用户等
3、设置好之后进入192.168.1.164:10080注册第一个用户。默认的第一个用户是管理员.
三、git
sudo apt-get install git
四、网络
4.1 安装net—tools
apt-get install net-tools
4.2内网穿透
4.2.1 natapp
官网下载客户端(https://natapp.cn/#download),需要注册账号,购买隧道,会得到一个authtoken,进入到下载的客户端文件夹中先登录之后:
nohup ./natapp -authtoken=xxxx -log=stdout &
4.2.2 ngrok
arm服务器上安装客户端
运行:
./ngrok authtoken <your_auth_token>
4.3访问IP白名单
配置/etc/hosts.allow文件和/etc/hosts.deny文件,前者设置可允许的ip,后面设置不允许的ip一般设置为前者为允许的ip。后者全部选择,如下:
允许内容 | 书写格式(改成自自需要的IP或IP段) |
---|---|
ssh允许单个ip | sshd:192.168.220.1 |
ssh允许ip段 | sshd:192.168.220. |
telnet允许单个ip | in.telnetd:192.168.220.1 |
telnet允许ip段 | in.telnetd:192.168.221. |
在/etc/hosts.deny中:
sshd:ALL
in.telnetd:ALL
执行:
service ssh restart
service xinetd restart
4.4固定IP
$ cd /etc/netplan
$ ls
查看网络名称
$ ifconfig
$ vim xxxxxxxxxxx.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp3s0: #配置的网卡名称,使用ifconfig -a查看得到
dhcp4: no #dhcp4关闭
addresses: [192.168.202.36/24] #设置本机IP及掩码
gateway4: 192.168.202.1 #设置网关
nameservers:
addresses: [192.168.202.1] #设置DNS
更新命令:$ sudo netplan apply
五、Anaconda
5.1安装
官网下载.sh文件,在想要安装的目录下运行:
$ bash ./path/to/anaconda/AnacondaXXX.sh -p /home/i/favorate/ -u
或者在安装的时候询问目录的时候手动选择目录。安装好之后不需要重启,命令行输入python显示:
或者执行:
$ conda --version
没有提示找不到conda命令即可。
5.2添加环境
直接添加到系统环境,所有用户就都可以用,切换到root用户下:
$ vim ~/.bashrc
在最后一行添加:
export PATH="/home/xupp/anaconda3/bin:$PATH"
然后执行命令 :
$ source ~/.bashrc
5.3 创建环境
创建python版本为version的环境
conda create -n your_env_name python =(version)
安装包
conda install xxx
六、nvidia环境
七、数据库
7.1 创建
创建将由Gitea使用的数据库用户,并通过密码进行身份验证。本示例使用'gitea'
密码。请为您的实例使用安全密码。
CREATE USER 'zjt' IDENTIFIED BY 'xxxxxxxxx';
适当替换上面的用户名和密码。
-
使用UTF-8字符集和排序规则创建数据库。确保使用
utf8mb4
charset代替,utf8
因为前者支持Basic Multilingual Plane之外的所有Unicode字符(包括emoji表情)。另外,根据您的预期内容选择排序规则。如有疑问,请使用unicode_ci
或general_ci
。CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
适当替换数据库名称。
-
将数据库的所有特权授予上面创建的数据库用户。
GRANT ALL PRIVILEGES ON giteadb.* TO 'zjt'; FLUSH PRIVILEGES;
-
从数据库控制台退出
exit
。
7.2 查询
进入数据库
mysql -u root -p#然后输入密码
查询 所有用户以及密码信息
select user,host,authentication_string from user;#5.7版本之后没有password字段了
7.3
八、用户管理
8.1 docker镜像
8.2 容器创建
docker run -it --name="images-user0" --gpus 1 -p 192.168.1.164:local-port:22 images /bin/bash
#docker run -it --name="cuda-QingDao2" --gpus '"device=2"' -v /home/lcm-data:/home/lcm-data -p 192.168.1.164:2474:22 nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 /bin/bash
sudo docker run -it --name="cuda-2080-zjt" --gpus=all -v /home/old-gitea/user-data/zjt:/home/data --restart=always -p 192.168.1.164:1001:22 -p 192.168.1.164:2001:8000 nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 /bin/bash
8.3容器管理
8.3.1修改管理员密码:
passwd
8.3.2 创建删除用户
创建用户
useradd -d /wd/user0 -m -s /bin/bash -u uid user0
passwd user0
usermod -aG sudo user0
删除用户
userdel -r username
8.3.3下载ssh服务端
apt-get update
apt-get install sudo
apt-get install openssh-server
apt-get install vim
service ssh start
#如果下载慢可以换源,执行:
#vim /etc/apt/source.list
#添加清华源、阿里源
#apt-get update
/etc/init.d/ssh start
8.3.4 配置cuda环境
vim ~/.bashrc
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
source ~/.bashrc
8.4 容器端口内网穿透
vim /home/wzy/docker/frpc/frpc.ini//添加新的端口映射,local-port与上面相同
docker restart frpc
同时让师兄在宝塔面板打开local-port映射长度