Docker:
为了避免每次使用docker命令都需要加上sudo权限,可以将当前用户加入安装中自动创建的docker用户组
sudo usermod -aG docker $USER
执行完此操作后,需要退出服务器,再重新登录回来,才可以省去sudo权限。
- 以后的docker镜像位置都会放在:/var/lib/acwing/docker/images中
【其中images译为镜像】
-
docker pull ubuntu:20.04:拉取一个镜像
-
docker images:列出本地所有镜像
- docker rmi ubuntu:20.04:删除镜像ubuntu:20.0
- docker save -o ubuntu_20_04.tar ubuntu:20.04:将镜像ubuntu:20.04导出到本地文件ubuntu_20_04.tar中[注意ubuntu_20_04.tar是瞎肘的名字]
然后经过这个操作后 用ls -l查看权限 发现权限为自己只读只写 别人都不可读不可写 为了能够增加权限:chmod +r ubuntu_20_04.tar
- docker load -i ubuntu_20_04.tar:将镜像ubuntu:20.04从本地文件ubuntu_20_04.tar中加载出来
如何将阿里云上的容器迁移到别的云上呢?
----先退出服务器 然后scp server1:ubuntu_20_04.tar . 将server1上的内容复制到本地 然后再将本地文件传到腾讯云服务器:scp ubuntu_20_04.tar server2: 然后登上腾讯云的服务器,将阿里云上的镜像加载出来:docker load -i ubuntu_20_04.tar
-
docker [container] create -it ubuntu:20.04:利用镜像ubuntu:20.04创建一个容器: 如登录到server1 然后创建一个容器:docker create -it ubuntu:20.04
-
docker ps -a:查看本地的所有容器 【若不加-a则只显示所有正在运行的容器】
- docker [container] start CONTAINER:启动容器 后面CONTAINER可以是id 也可以是名称 。
故可以先docker ps -a把ID名称显示出来 然后直接赋值ID编号
启动完过后可以:docker ps:会发现已经启动几秒钟了!
-
docker [container] stop CONTAINER:停止容器
docker [container] restart CONTAINER:重启容器 -
docker [contaienr] run -itd ubuntu:20.04:创建并启动一个容器 [不加d是创建启动并进入一个容器]
docker [container] attach CONTAINER:进入容器(注意必须是先创建好的容器才能够进入) -
如何退出容器?先按Ctrl-p,再按Ctrl-q可以挂起容器 如果想直接关掉容器:则直接Ctrl+d
-
docker [container] exec CONTAINER COMMAND:在容器中执行命令【但要先注意启动容器才能执行命令 如组合:docker start vigilant_johnson然后再docker exec vigilant_johnson ls】
-
docker [container] rm CONTAINER:删除容器【注意+-i 是删除镜像】但是不能删除一个正在运行的容器 因此删除容器之前先要把容器搞停:docker stop+名称
如何一次性删除多个容器?docker container prune
然后最后docker ps -a就可以发现全删掉了 -
docker export -o xxx.tar CONTAINER:将容器CONTAINER导出到本地文件xxx.tar中
docker import xxx.tar image_name:tag:将本地文件xxx.tar导入成镜像,并将镜像命名为image_name:tag
例如:先创建一个镜像:docker create -it ubuntu:20.04 然后docker ps -a查看 然后docker export -o tmp.rar peaceful_kepler导出 然后加上可读权限chmod +r tmp.rar 然后退出服务器 将server1上的镜像传到server3上:scp server1:tmp.rar . 然后scp tmp.rar server3: 上到server3上,然后往docker中导入镜像:docker import tmp.rar注意导入时也可起别名:docker import tmp.rar myubuntu:1.0
-
以上为知识点 下面进入实战操作:
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 # 创建并运行docker_lesson:1.0镜像(docker_lesson_1_0也是镜像 docker_lesson:1.0是他的子镜像)进入容器:docker attach my_docker_server
然后passwd可以修改密码(注意由于root用户的权限无限大 所以不用输入原密码,可以直接修改设置新密码)然后就可以退出容器了
进入自己的服务器(以root用户的身份):
ssh root@+本地的ip地址(127.0.1)【也可以叫localhost】+端口号(20000)
故:ssh root@localhost -p 20000[The authenticity of host ‘[localhost]:20000 ([::1]:20000)’ can’t be established.
ECDSA key fingerprint is ……………………balabalabalabala.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Host key verification failed.这时候直接按yes就行了
这里的意思是:当你第一次尝试通过ssh连接到一个新的主机(这里是localhost)时,ssh会检查该主机的公钥指纹(public key fingerprint)以确保你连接的是正确的主机,而不是中间人攻击(man - in - the - middle attack)的目标。
这里的错误信息表明ssh无法验证localhost的身份,因为它没有该主机的公钥指纹记录。所以:出现这个提示时,你可以选择输入yes来继续连接。这样ssh会将该主机的公钥指纹添加到known_hosts文件中,下次连接时就不会再出现这个提示。【如果你想通过指定指纹来连接,可以输入fingerprint并按照提示操作。】
]
【注意如果要登录自己的云服务器,则需要将自己云服务器的20000端口放开----点开控制台中自己的服务器-》更多-》网络和安全组-》安全组配置-》配置规则-》手动添加-》目的:20000 源:0.0.0.0/0 描述:ssh端口 然后保存一下 这样就可以执行ssh root@+公网ip地址】【(新版2024.12.05的阿里云) 进入阿里云官网-》ECS服务器-》实例-》管理资源-》安全组-》管理规则-》手动添加】(这样就可以在其他地方登录在云服务器上搭的云服务器了 如直接可以绕过ssh server1 直接输入:ssh root@+公网IP -p 20000)
注意:::如果20000端口拒绝访问 那么先重启一下云服务器 然后记得ctrl+p、ctrl+q挂起20000端口所在的docker(绝对不能ctrl+d退出) 然后重试(记得用acs登 如果没有在docker attach时第一时间passwd 那么root不能用密码登录)
然后这就登录上云服务器的云服务器了(就是load进来的镜像,等于说是load进来了一个开放了20000端口的服务器(实际是docker),这相当于在你租的服务器里又开了一个服务器) 下面这个20000的端口就是一个新的云服务器 下面可以对其进行配置 (与阿里云租服务器(2)就完全一样了 但注意如果想要配置免密登录 则需要:vim .ssh/config 然后 Host server1_docker、HostName…… 最下面要加上Port 2000 然后ssh-copy-id server1_docker)
【
配置具体如下:
adduser acs
usermod -aG sudo acs
然后退出服务器 直接就能ssh acs@ip地址 -p 20000登录了(不用ssh root@……了)
进入vim .ssh/config
Host server_1 docker
HostName ip地址
User acs
Port 20000
然后保存退出 配置一下免密登录:ssh-copy-id server1_docker
】
然后就可以免密登录了:ssh server1_docker
然后可以把这个房间装修成自己喜欢的样子:
1.退出server1_docker(因为这是以acs权限登录的),然后ssh root@localhost -p 20000[以root身份登录到20000端口]。给acs安装sudo命令:apt-get install sudo。
2.然后再以acs的身份登录到20000端口:ssh acs@localhost -p 20000 下载我们想下载的,比如tmux: sudo apt-get install tmux
然后下载好了就退出20000端口的服务器,在本地scp .bashrc .vimrc .tmux.conf server1_docker: (将本地的tmux装修祖传配置文件传到20000端口的服务器上)
这样,就就就又找到了和yxc初恋的感觉~~~(Σyxc)