系统相关
首页 > 系统相关> > AcWing《Linux基础课》第8讲 租云服务器及配环境

AcWing《Linux基础课》第8讲 租云服务器及配环境

作者:互联网

8 租云服务器及配环境

8.1 介绍

云平台的作用

任选一个云平台,按如下方式配置

租到的服务器

不建议直接在毛坯服务器搭房子,而是先搭建docker,方便后期迁移到其它平台,而且用于标准化,提高开发效率。因此主要开发工作在毛坯服务器中的docker里。

8.2 基本配置

创建用户

用ssh登录后,创建用户acs

adduser acs

分配sudo权限

usermod -aG sudo acs  # 给acs用户sudo权限

配置免密登录方式

在本地配置~/.ssh/config

把本地~/.ssh/id_rsa.pub复制到服务器的~/.ssh/authorzied_keys

配置新服务器的工作环境

把Ac Terminal的bashvimrctmux配置复制到服务器上

scp .bashrc .vimrc .tmux.conf server_name:

安装tmux

sudo apt-get update
sudo apt-get install tmux

打开tmux,在tmux安装docker,这样可防止终端异常关闭后,还能恢复到之前的进度。

8.3 docker安装与使用

8.3.1 安装

安装可参考官网教程

(1)配置仓库

sudo apt-get update

sudo apt-get install \
    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

(2)安装docker

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

安装后可通过docker --version查看版本,如果出现则安装成功。

在使用前,可以给docker命令加上sudo权限,避免每次使用docker都要加上sudo$USER表示当前用户。执行下面命令后,会自动创建docker组,并让当前用户加入。

sudo usermod -aG docker $USER

8.3.2 使用教程

(1)基本原理

云平台有多种:轻量级云平台、ECS等。为了解决迁移困难,可把服务器配置到docker里,这样就能通过docker更换到不同的平台,减少迁移代价。

一个docker可以有多个镜像image,一个image可以有多个容器container。但这只是逻辑结构,而不是存储结构,docker不会真的一个个独立存储。镜像和容器的关系可以看做是印章和图案的关系。

在实际应用时,一个container是一个服务器。需要迁移时,在旧的云平台把container封装成image,然后在新的云平台读取image即可。

(2)镜像(Images)

(3)容器(container)

docker export./importdocker save/load的区别

8.3.3 SSH登录docker

进入AC Terminal,然后

scp /var/lib/acwing/docker/images/docker_lesson_1_0.tar server_name:  # 将镜像上传到自己的云端服务器
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  # 将容器内的22端口(容器内的SSH端口)映射到本地的20000端口,然后创建并运行docker_lesson:1.0镜像

docker attach my_docker_server  # 进入创建的docker容器
passwd  # 设置root密码

注意,要先去云平台控制修改安全组配置,开放端口20000,IP填0.0.0.0/0表示所有都允许,协议选TCP,否则绑定端口的命令无效。

然后以云平台服务器的IP作为docker的IP,20000为端口号,就能以SSH方式访问docker

设置完就可使用SSH登录到docker内的服务器,可按照SSH一节设置免密登录等优化SSH登录方式,注意ssh需要加上参数-p 20000

如果apt-get下载软件较慢,可修改软件源到清华大学开源软件镜像站

初次使用容器,用命令apt-get install sudo先安装sudo

8.4 作业核心代码

task1

(1)首先在腾讯云租一台云服务器。获取到公网IP后,在云服务器登录root账户,用passwd设置root账户密码,然后在目录~/.ssh下创建文件authorized_keys,把AC Terminal的公钥复制到该文件中。

(2)在AC Terminal修改~/.ssh/config文件

Host acs
	HostName xxx.xxx.xxx.xxx
	User root

(3)保存服务器别名

在AC Terminal执行

cd ~/homework/lesson_8/homework_0
echo "acs" > server_name.txt

task2

在AC Terminal用ssh acs登录到云服务器,执行如下命令

sudo apt-get update

sudo apt-get install \
    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

sudo usermod -aG docker $USER

task3

(1)复制镜像

scp /var/lib/acwing/docker/images/docker_lesson_1_0.tar acs:  # 将镜像上传到自己租的云端服务器
ssh acs  # 登录自己的云端服务器

(2)加载镜像

docker load -i docker_lesson_1_0.tar  # 将镜像加载到本地

(3)打开端口

在云服务器控制台开启端口20000,IP设置为0.0.0.0/0,协议选TCP

(4)用镜像创建容器并绑定端口

docker run -p 20000:22 --name my_docker_server -itd docker_lesson:1.0  # 创建并运行docker_lesson:1.0镜像

(5)打开容器

docker attach my_docker_server  # 进入创建的docker容器

(6)创建新用户

passwd  # 设置root密码

adduser acs  # 创建用户acs
su acs  # 切换到acs用户

(7)添加SSH公钥

把AC Terminal的SSH公钥拷贝至服务器acs用户的~/.ssh/authorized_keys

cd ~
mkdir .ssh
vim .ssh/authorized_keys

(8)配置docker容器别名

在AC Terminal修改~/.ssh/config,加入如下配置信息,其中IP是云平台的服务器公网IP。

Host acs_docker
	HostName xxx.xxx.xxx.xxx
	User acs

(9)保存docker容器别名

在AC Terminal执行

cd ~/homework/lesson_8/homework_2
echo "acs_docker" > server_name.txt

标签:容器,镜像,sudo,租云,acs,及配,Linux,服务器,docker
来源: https://blog.csdn.net/weixin_45769709/article/details/123230398