在linux服务器上搭建docker容器

本文详细介绍了如何使用Docker创建容器,包括下载镜像、基于镜像运行容器、配置网络、环境变量设置以及内网穿透等技巧。还涵盖了Linux环境下的相关操作,如安装软件、权限管理和SVN项目管理。
摘要由CSDN通过智能技术生成

建立容器并配置环境方案

Docker 命令大全 Docker 命令大全 | 菜鸟教程 (runoob.com)

Linux Linux 教程 | 菜鸟教程 (runoob.com)

Docker镜像

dockerhub下载镜像, 这里下载的是华为的smarts

docker pull huaweinoah/smarts

查看已有镜像

docker images

Docker容器创建

退出容器不关闭容器的方法:Ctrl+P+Q

基于镜像建立容器

docker run -it --name 容器名 镜像名:版本号 /bin/bash

官方:将容器端口设为8081端口

cd </path/to/SMARTS>
docker run --rm -it -v $PWD:/src -p 8081:8081 huaweinoah/smarts:<version>
# E.g. docker run --rm -it -v $PWD:/src -p 8081:8081 huaweinoah/smarts:v0.5.1

我的:

sudo docker run -it --net=host -v /home/XXX/huaweinoah_smarts:/src --name="huaweinoah_smarts" --glus all huaweinoah/smarts:latest /bin/bash

--glus all是可以使用所有GPU资源,xxx:/src 是将容器中的src挂载在xxx文件夹中,这样可以实现容器src中的内容的一个备份效果。

--net=host,使用宿主机的网络作为自身的网络

查看已有容器

docker ps -a

Docker容器环境配置

进入容器

docker start 容器名/ID
docker attach 容器名

先更新一下

apt-get update
apt update

安装vim tmux

apt-get install tmux vim

vim 修改只读文件,命令行模型输入:!wq强制保存退出

安装ssh服务,修改配置文件,启动ssh服务

apt-get install openssh-server
# 修改配置文件,详细配置网络搜索一下就好
vim /etc/ssh/sshd_config
# 启动服务
/etc/init.d/ssh start
# 端口号
Port 20
# 允许使用ssh权限登录
PubkeyAuthentication yes    
# 禁用密码登录
PasswordAuthentication no

sudo 添加用户

安装sudo

apt-get install -y sudo

创建新用户(该过程会自动创建用户组和用户home目录)

adduser xxx

为新创建的用户添加sudo权限

vim /etc/sudoers
# 在/etc/sudoers文件中找到 root ALL=(ALL:ALL) ALL,在该行下面添加

xxx ALL=(ALL:ALL) ALL

切换到新用户,执行 sudo 命令验证结果

su xxx # 切换用户
sudo ls # 使用sudo权限执行ls,只要没报错就证明设置成功

内网穿透

师兄给我发了两个文件,分别是frpcfrpc.ini

拷贝本地文件到容器

docker cp 你的文件路径 容器长ID:docker容器路径

然后他让我运行了这个指令

nohup ./frpc -c frpc.ini &

docker 进入之后出现提示符变成$,使用sudoroot用户修改/etc/passwd,将有用户名的那一行以/bin/sh结尾的改成/bin/bash

为xxx用户添加密钥登录

文件权限:Owner Group Others 三个角色

r w x: 读 写 执行权限,每个角色都能配有这三个权限

7:111:rwx

6:110:rw-

4:100:r

2:010:w

1:001:x

cd /home/xxx
mkdir .ssh

# 权限可以用774
chmod 774 .ssh/

# 将.ssh权限修改为新建用户
chown -R xxx:xxx .ssh

cd .ssh/
vim authorized_keys
# 添加用户公钥

# 权限可以用774
chmod 774 authorized_keys
chown -R xxx:xxx authorized_keys

svn项目

进入自己账号的目录下,并svn项目

cd /home/xxx
svn svn://xxx

关于root用户和普通用户的环境变量问题

问题:有些官方给的环境需要通过以下代码连接容器才能执行训练代码

sudo docker exec -it dockerID bash

解决方法:通过exec进入docker之后,执行env指令,然后把相关的重要环境变量写到root 的 .bashrc里面。

或者:配置与root相同的环境变量文件

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值