acwing linux docker教程
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????终章
????????听着名字还挺伤感的哈哈哈其实是Linux的终章,感谢大家这段时间的阅读,这段使时间我为了给大家清楚的讲解一下Linux自己也是很认真的学习了一遍,自己提升了也不少。其实最近学校里面是讲了Linux和windows server 2019搭载DNS、web、ftp服务器的内容,如果有需要的在下面留言我看不行就做一篇,要是没人需要我就不自作多情了嘿嘿。
? ? ? ? 下面的出的我可能就从蓝桥杯的考点提纲开始做起了,因为我是跟着y总的一起学的算法,所以模板也就是讲讲y总的,再说y总那实力和蓝桥杯pass率摆在那里了跟着学能坚持下来肯定没毛病,然后呢我也讲讲算法竞赛入门经典(就是那个直接劝退初学者的紫皮书)里面一些我认为有用(或者是我能理解hh)的内容给大家一块谈谈。所以说计划就是
1.讲解y总算法代码(并附上动画和代数法供大家理解)
2.讲解蓝桥杯官网上的备赛经验和真题,及重要的双周赛内容
3.浅谈一些紫皮书
不能再多bb了上今天的内容
文章目录
1.镜像
2.容器
3.实操练习
本节课是关于搭建docker环境,使用docker的好处是方便迁移。
docker基本概念
镜像(images)
相当于一个模板。每个镜像由(名称+版本号)唯一标识
容器(container)
相当于一个完全独立的服务器,根据一个镜像来生成一个容器。使用相同镜像生成的容器,其环境完全一致。一个容器也可以压缩成一个镜像。
首先,将当前用户添加到docker用户组,能够避免每次使用docker命令都需要加上sudo权限
sudo usermod -aG docker $USER
执行完上面的命令后,需要退出并重新登陆一下
logout
ssh aliyun
下面介绍docker的常用命令
镜像
docker pull ubuntu:20.04:拉取一个镜像(镜像由名称+版本号进行标识)
docker images:列出本地的所有镜像
docker rmi ubuntu:20.04:删除某个镜像
docker commit CONTAINER IMAGE_NAME:TAG:创建某个容器的镜像
docker save -o ubuntu_20_04.tar ubuntu:20.04:将镜像ubuntu:20.04导出到本地文件ubuntu_20_04.tar中
docker load -i ubuntu_20_04.tar:从本地文件ubuntu_20_04.tar中加载出镜像
容器
docker [container] create -it ubuntu:20.04:利用镜像ubuntu:20.04创建一个容器(container可加可不加)
docker ps:查看当前运行的容器
docker ps -a:查看所有容器
docker start CONTAINER:启动容器(后面的CONTAINER是容器名称)
docker stop CONTAINER:停止容器
docker restart CONTAINER:重启容器
docker run -itd ubuntu:20.04:根据镜像ubuntu:20.04创建并启动一个容器(其中-d表示daemon,以守护进程运行)
docker run --name my_nginx -p 80:80 nginx:latest :根据镜像nginx:latest创建一个容器,容器名为my_nginx,并添加宿主机端口到容器端口的映射
docker attach CONTAINER:进入一个容器
进入后,若想退出(仅退出容器,容器并不停止),先按Ctrl + p,再按Ctrl + q
docker exec CONTAINER COMMAND:在某个容器中执行一个命令
docker exec -it my_nginx /bin/bash 以bash进入到一个容器内部(进去后,exit就可以直接退出,且不会停止容器)
docker rm CONTAINER:删除一个容器
docker container prune:删除所有已停止的容器
docker export -o xxx.tar CONTAINER:将某个容器导出到本地xxx.tar文件中
docker import xxx.tar image_name:tag:将本地文件xxx.tar导入成镜像,并将镜像命名为image_name:tag
docker export/import与docker save/load的区别
export/import 会丢弃历史记录和元数据信息,仅保存容器当时的快照状态
save/load会保存完整记录,体积会更大
docker top CONTAINER:查看某个容器内的所有进程
docker stats:查看所有容器的统计信息(占用CPU,内存等)
docker cp xxx CONTAINER:xxx或docker cp CONTAINER:xxx xxx:在本地和容器之间复制文件
docker rename CONTAINER1 CONTAINER2:重命名容器
docker update CONTAINER --memory 500MB:给指定的容器修改内存限制为500MB
租好云服务器后,一定要先在云服务器内新建一个docker,然后以后直接在docker中操作,这样以后做服务器迁移,只需要给docker容器打个镜像,把镜像文件拷贝带走,然后在新服务器重新load这个docker镜像就好了。可以在任意的云平台进行迁移,很方便。不要在云服务器上直接施工。
租好云服务器,建好docker容器后,配置一下docker容器的ssh登录。下次直接从 AC Terminal登录到云服务器里的docker容器即可。
实际上述docker命令,工作中经常用到的,只是其中很小一部分,不需要记忆,现用现查即可。
实操练习
进入AC Terminal,将打包好的镜像,上传到自己的云服务器
scp xxx/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
# 创建并运行容器, 添加端口映射, 本地云服务器端口20000, 映射到docker内端口22
docker attach my_docker_server #进入docker容器
passwd #设置root密码
去云平台控制台中,修改安全组配置,放行端口20000
返回AC Terminal,通过ssh登录到自己云服务器内的docker
ssh root@xxx.xxx.xxx.xxx -p 20000
1
随后,按照上一节的内容,创建一个普通用户,并添加sudo权限
随后,退出,返回 AC Terminal
配置ssh
ssh-copy-id aliyun_docker
配置ssh免密登录
配置成功,直接在 AC Terminal 通过ssh登录到云服务器的docker容器中
ssh aliyun_docker
直接从 AC Terminal 登录到 云服务器里面的docker中进行操作
docker命令查询,可以通过官网:https://docs.docker.com/get-started/overview/
在搜索框中输入命令,进行查询即可,比如查询docker update
注:如何在docker容器中安装vim等命令
docker的很多镜像,基于的操作系统都是debian,而这个操作系统为了保持轻量,阉割了很多内容,比如你进入容器后,发现vim根本没有安装,ps命令也没有。此时,可先配置清华大学的软件源,然后用apt-get install vim 进行vim的安装。
具体操作:
进入容器后,先备份一下apt的源
mv /etc/apt/sources.list /etc/apt/sources.list.bak
进入上面的清华大学源,其配置中有如下4行信息
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
依次复制每一行,采用echo命令,配合>>操作符,将上面的内容以追加的形式放到/etc/apt/sources.list这个文件中
echo deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free >> /etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free >> /etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free >> /etc/apt/sources.list
echo deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free >>/etc/apt/sources.list
随后运行下apt-get update刷新一下源。
再运行apt-get install vim 即可进行软件安装
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!