Acwing - Linux基础课(九)- docker教程
文章目录
- 镜像
- 容器
- 实操练习
本节课是关于搭建docker环境,使用docker的好处是方便迁移。
docker基本概念
镜像(images)
相当于一个模板。每个镜像由(名称+版本号)唯一标识
容器(container)
相当于一个完全独立的服务器,根据一个镜像来生成一个容器。使用相同镜像生成的容器,其环境完全一致。一个容器也可以压缩成一个镜像。
首先,将当前用户添加到docker
用户组,能够避免每次使用docker
命令都需要加上sudo
权限
sudo usermod -aG docker $USER
执行完上面的命令后,需要退出并重新登陆一下
logoutssh 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
随后,按照上一节的内容,创建一个普通用户,并添加sudo
权限
随后,退出,返回 AC Terminal
配置ssh
Host aliyun_dockerHostName xxx.xxx.xxx.xxx #云服务器的ipUser yogurt # 云服务器内docker容器的用户(刚才新创建的普通用户)Port 20000 # 从云服务器的20000端口登录进入docker
配置ssh免密登录
ssh-copy-id aliyun_docker
配置成功,直接在 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
即可进行软件安装
Linux基础课,完结撒花~~
Acwing - Linux基础课(九)- docker教程相关推荐
- AcWing Linux基础课
文章目录 常用文件管理命令 常用命令介绍 创建作业 & 测试作业的正确性 作业 tmux和vim tmux教程 vim教程 创建作业 & 测试作业的正确性 作业 shell shell ...
- linux离线安装docker教程,Linux 离线安装docker的过程
前言 有时候会遇到服务器不能联网的情况,这样就没法用yum安装软件,docker也是如此,针对这种情况,总结了一下离线安装docker的步骤 1. 准备docker离线包 下载需要安装的docker版 ...
- Linux下的docker容器安装教程
Linux下的docker容器安装教程 一.初始环境配置 1.yum仓库配置 2.检查yum仓库 3.关闭防火墙和selinux 二.开启内核的流量转发 三.安装docker 1.配置docker相关 ...
- Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法
本文是Linux Shell脚本系列教程的第(九)篇,更多shell教程请看:Linux Shell脚本系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.继上一篇之后,今天 ...
- Docker 教程、架构、Linux下的安装
Table of Contents Docker 教程 谁适合阅读本教程? 阅读本教程前,您需要了解的知识 Docker的应用场景 Docker 的优点 1.快速,一致地交付您的应用程序 2.响应式部 ...
- linux安装和使用docker教程
linux安装和使用docker教程 文章目录 linux安装和使用docker教程 1.docker官网安装地址 2.卸载linux系统中的docker 3.安装docker 4.查看安装docke ...
- Linux 安装docker教程
docker 教程 Docker是基于Go语言实现的云开源项目. 官网: https://www.docker.com/ 文档地址:https://docs.docker.com/ 超详细 仓库地址: ...
- linux安装docker教程 centos 7
一.首先准备一台虚拟机,不会装虚拟机的同学可以看我前面的教程 二.准备一个远程连接工具,连接到linux系统,这里我用的是CRT 三.值得注意的一点是,在linux中安装docker有一个必要条件就是 ...
- 威联通装linux百度网盘,威联通NAS使用百度云Docker教程,超简单!
原标题:威联通NAS使用百度云Docker教程,超简单! 作为国内一家独大的公有云,百度云是大家现在常用的云存储了.相信很多人的资源都有一部分存在上面,不过由于公有云的性质在那里,在对于数据安全抱有怀 ...
最新文章
- 手机自带的显示基站命令
- php require_once
- 硬件nat关闭还是开启_超能课堂(173):AfterBurner不止超频,还是绝佳的游戏伴侣...
- 使用 ramda 解析 .yarnrc/.npmrc 配置文件的例子
- php 类的属性与方法的注意事项
- 批量修改Dell服务器远程管理卡iDRAC密码
- 教你用canvas绘制矩形
- linux下limits.conf 修改不生效的原因
- linux 7安装mysql8.12_Linux(centOS 7)安装MySQL8.12
- Arcgis Javascript那些事儿(八)--图层获取与图层顺序
- cube 一站式云原生开源机器学习平台
- 统计学基础之卡方检验
- Silverlight:针式打印机文字模糊的改善办法
- SpringBoot的配置文件properties和yml格式
- C 语言判断某年是否为闰年该月有多少天
- 应用程序操作word文件报“RPC服务器不可用,HRESULT:0x800706BA”
- matlab主成分分析散点图_主成分分析(PCA)及其在MATLAB中的实现
- 国内权益标收益率的“尖峰厚尾”现象研究
- 软件实施工程师的工作
- Rust actix aiohttp_介绍 - actix-web 中文文档 - Rust-Web 开发指南
热门文章
- 5G真的有那么重要吗?
- 构筑数字底座,同济医院用全闪存提速智慧医疗
- 认真不一定会赢,但至少不会输
- iOS中.pch文件如何使用
- 基于labview的tcp通信设计简要教程
- 淘宝爬虫之强行登录如何解决Selenium被检测到的问题?
- 爬虫「Python」:一次登录,解决爬取淘宝商品评价繁杂的问题——简述 Headers 的使用
- 基础训练---身体素质
- python与cad交互_与命令行进行交互_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...
- [USACO16JAN]堡哞Fort Moo