云服务器与docker详解

1. 购买云服务器


首先去任意云服务器平台购买一个云服务器,作者购买的是阿里云的ESC n4服务器,在做完学生认证后,新年活动期间180块大洋买三年,如果没赶上新年活动也不用担心,以后优惠活动非常多,但大多针对第一次购买服务器的学生身份,所以第一次买一定要把羊毛薅光。注意系统要选Ubuntu 20.04 64位,其他随意。


PS:作者又低价续费(87.12/year)了3年,在降低配置按流量收费后,又退了58.38,所以相当于租了6年花了382.98,一年60多块,这也太香了qwq


在购买完服务器后,首先在阿里云网站界面的云服务器 ECS中选择实例,你就可以看见自己的服务器了,再在自己的服务器上点击更多重置实例密码,改一个自己能记住的密码,这就是你以后ssh服务器的密码了

1.png

随后可以选择降低配置,把按固定宽带模式改为按流量计费模式,当然你不改也可以~


改为按流量计费模式的好处有:

  1. 改成按流量计费模式属于降低配置,会退一笔钱(作者退了58.38)
  2. 平时不会限制你的带宽,可以拉到100Mb,即12.5MB

当然坏处就是流量收费了,0.8¥/1G,不过作者建议还是改了好因为平时哪有那么多人访问你的网站


同样的,进入云服务器 ECS中的实例,在自己的云服务器后面点击升降配,选择降低配置中的降低带宽配置,进入后在公网带宽中选择按使用流量,并拉满100Mb的配置。如果你的升降配的界面没有降低配置的选项,不用担心,直接找阿里云的人工客服,提供你的公网IP和截图后,5min就能解决,重新刷新界面,就会看到包含降低配置的界面

2.png


2. 配置云服务器


之后进入AC Terminal,ssh到自己的服务器,阿里云的默认用户名是root

ssh root@xxx.xxx.xxx.xxx  # xxx.xxx.xxx.xxx替换成新服务器的公网IP

输入你设置好的密码后,你就进入了自己的服务器,这时你登录的是服务器的root账号,在服务器内拥有至高无上的权力,所以有误操作就很容易搞坏服务器,于是我们自己创建一个用户,并赋予他sudo权限,这样就不会发生误操作了,并且要使用root用户的权力时,命令前加上sudo即可

adduser riz9  # 创建用户riz9      PS: 这个用户名随便起,怎么舒服怎么来
usermod -aG sudo riz9  # 给用户riz9分配sudo权限

然后退出服务器,我们设置服务器别名和免密登录

进入 AC terminal 的 ~/.ssh/config 文件中,在后面写上以下内容,User就是你刚才在云服务器中加入的用户名,改完后保存并退出

Host 别名
    HostName 公网IP
    User riz9

之后再一键设置免密登录

ssh-copy-id 服务器别名

ssh进入你的云服务器,为它安装tmux

sudo apt-get update
sudo apt-get install tmux

并把 AC Terminal 的配置传给云服务器

scp .bashrc .vimrc .tmux.conf server_name:  # server_name需要换成自己配置的别名

3. 安装docker


随后打开tmux,开始安装docker,直接顺次执行以下命令

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

然后等待docker的安装完毕,安装完后可以输入docker --version查看docker的版本,如果顺利查询到版本,证明docker已经成功安装完毕


4. 使用docker


docker分为imagescontainer,他们的关系相当于月饼的模子和月饼的关系,images即月饼的模子,container即模子扣出来的月饼。images即镜像,可以通过docker pull ubuntu:20.04从官网拉取一个镜像或者docker load -i ubuntu_20_04.tar从本地加载一个镜像(以ubuntu:20.04举例)。container即容器,可以通过docker create -it ubuntu:20.04来创建ubuntu:20.04镜像的一个容器。具体常用命令在y总的总结


以下为y总提供的镜像文件安装的步骤:


如果要创建容器必须要有镜像,镜像文件在 ~/var/lib/acwing/docker/images/目录下,先把镜像上传到自己的服务器

scp /var/lib/acwing/docker/images/docker_lesson_1_0.tar 云服务器名:

随后登录自己的云服务器,把镜像加载到本地,创建并运行该镜像,加载完毕后进入该镜像中名为my_docker_server的容器中,设置root密码并创建普通权限用户,再赋予他root权限

ssh server_name  # 登录自己的云端服务器
docker load -i docker_lesson_1_0.tar  # 将镜像加载到本地
docker run -p 20000:22 --name my_docker_server -itd docker_lesson:1.0  # 创建并运行docker_lesson:1.0镜像
docker attach my_docker_server  # 进入创建的docker容器
passwd  # 设置root密码
adduser acs # 创建普通权限用户
usermod -aG sudo acs # 给普通权限用户增加root权限

挂起my_docker_server容器,返回AC Terminal中,通过公网IP和端口号尝试直接连接到my_docker_server容器中

ssh root@xxx.xxx.xxx.xxx -p 20000  # 将xxx.xxx.xxx.xxx替换成自己租的服务器的IP地址

如果失败,则说明你的阿里云服务器未开放20000端口。进入阿里云网站中的云服务器 Ecs,并在其中找到你的云服务器实例,点击更多,在网络和安全组中点击安全组配置,再点击配置规则,手动添加20000这个端口


之后应该成功进入到my_docker_server容器中,注意@前面是什么用户名,就用哪个用户登录该容器


随后我们可以配置一下别名和免密登录,先返回到AC Terminal中vim ~/.ssh/config,在后面追加以下内容后,就设置完了服务器的别名

Host server1_docker
    HostName xxx.xxx.xxx.xxx
    User acs
    Port 20000

追加的内容从上往下分别是my_docker_server容器的别名容器所在云服务器的公网IP别名登录时登录的用户名登录的端口


保存退出之后再执行ssh-copy-id server1_docker,便可设置免密登录

posted @ 2022-02-15 22:56  riz9  阅读(1194)  评论(0编辑  收藏  举报