AC Terminal-docker镜像配置
9月跟着Y总学完了Linux基础课,近期赶上阿里云大减价,99租了一年的2核2G/ECS。
趁着这个机会,重新梳理一下Linux中docker镜像配置。
阿里云服务器租赁
2023阿里云金秋云创季-阿里云,最近赶上一波活动,当然这不是在打广告哈…
2核2G在平时的开发中足矣,当然这款减价的ECS我选择的按带宽计费,按流量拉满会多花钱,所以就选择了3M带宽计费。
为了方便后序开发的统一性,服务器的版本一定要选Ubuntu22.04。
租号服务器后,我们就可以进入到AC Terminal进行我们服务器的“装修”啦!
阿里云免密登录设置
进入AC Terminal,ssh远程连接阿里云服务器:
ssh root@xx.xx.xxx.xx
#阿里云与华为云远程登录方式
ssh root@xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx替换成新服务器的公网IP
#腾讯云比较独特
ssh ubuntu@xxx.xxx.xxx.xxx # xxx.xxx.xxx.xxx替换成新服务器的公网IP
在新服务器上添加一个新用户
adduser munger #回车后连续两次输入密码
usermod -aG sudo munger # 给用户acs分配sudo权限
返回AC Terminal终端,为租赁的服务器创建免密登录
logout
cd ~
vim .ssh/config
添加阿里云信息
Host myaliyun
HostName xxx.xxx.xxx.xxx
User munger
设置免密登录
ssh-copy-id myaliyun #回车确认
至此,阿里云平台服务器设置完成。
Docker传输
接下来使用将本地docker镜像传到阿里云上:
scp /var/lib/acwing/docker/images/docker_lesson_1_0.tar myaliyun: # 将镜像上传到自己租的云端服务器
ssh myaliyun # 登录自己的云端服务器
初次租赁服务器后进行docker安装
#Set up Docker's `apt` repository:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install the Docker packages:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
$ sudo docker run hello-world
开辟新容器
创建安装过程:
docker load -i docker_lesson_1_0.tar # 将镜像加载到本地
docker run -p 20000:22 --name mydocker -itd docker_lesson:1.0 # 创建并运行docker_lesson:1.0镜像
docker attach mydocker # 进入创建的docker容器
passwd # 设置root密码
adduser miao #回车后连续两次输入密码
usermod -aG sudo miao # 给用户acs分配sudo权限
docker attach
后,按住Ctrl + P
,然后按下Ctrl + Q
键,就可以退出容器的会话,但是容器会继续在后台运行。可以使用docker ps
命令查看容器是否在运行中。
//docker stop
//如果需要停止容器,则可以使用docker stop命令来停止容器。但是这样会导致容器的状态变为exited,需要再次启动容器才能进入到容器内部。
//docker kill
//如果容器无法正常停止,则可以使用docker kill命令来强制停止容器。但是同样会导致容器的状态变为exited,需要再次启动容器才能进入到容器内部
//exit
//在容器内部,执行exit命令可以直接退出容器。但是同样需要再次启动容器才能进入到容器内部。
退出容器后如何重新进入?
$ docker ps
$ docker start mydocker
$ docker exec -it mydocker /bin/bash
容器免密登录
去云平台控制台中修改安全组配置,放行端口20000:
Host mydocker
HostName xxx.xxx.xxx.xxx
User miao
Port 20000
设置免密登录:
ssh-copy-id mydocker #回车确认
登录自己的服务器,然后安装tmux:
sudo apt-get update
sudo apt-get install tmux
scp .bashrc .vimrc .tmux.conf server_name: # server_name需要换成自己配置的别名
至此,容器开辟装修完毕,我们就可以在此容器上就行开发啦!
为啥需要这么折腾容器呢?就在阿里云平台直接开发不行吗?
答案当然是可以啦!但是,万一哪天阿里云平台崩了或者你租赁的服务器到期了,那么那些数据的安全性、完整性可就没有保障啦。容器的可移植性好,也能减少因突发事故造成的损失,何乐为不为?
希望对大家有帮助!