文章目录

  • 镜像
  • 容器
  • 实操练习

本节课是关于搭建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/importdocker save/load的区别

    • export/import 会丢弃历史记录和元数据信息,仅保存容器当时的快照状态
    • save/load会保存完整记录,体积会更大
  • docker top CONTAINER:查看某个容器内的所有进程

  • docker stats:查看所有容器的统计信息(占用CPU,内存等)

  • docker cp xxx CONTAINER:xxxdocker 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教程相关推荐

  1. AcWing Linux基础课

    文章目录 常用文件管理命令 常用命令介绍 创建作业 & 测试作业的正确性 作业 tmux和vim tmux教程 vim教程 创建作业 & 测试作业的正确性 作业 shell shell ...

  2. linux离线安装docker教程,Linux 离线安装docker的过程

    前言 有时候会遇到服务器不能联网的情况,这样就没法用yum安装软件,docker也是如此,针对这种情况,总结了一下离线安装docker的步骤 1. 准备docker离线包 下载需要安装的docker版 ...

  3. Linux下的docker容器安装教程

    Linux下的docker容器安装教程 一.初始环境配置 1.yum仓库配置 2.检查yum仓库 3.关闭防火墙和selinux 二.开启内核的流量转发 三.安装docker 1.配置docker相关 ...

  4. Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法

    本文是Linux Shell脚本系列教程的第(九)篇,更多shell教程请看:Linux Shell脚本系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.继上一篇之后,今天 ...

  5. Docker 教程、架构、Linux下的安装

    Table of Contents Docker 教程 谁适合阅读本教程? 阅读本教程前,您需要了解的知识 Docker的应用场景 Docker 的优点 1.快速,一致地交付您的应用程序 2.响应式部 ...

  6. linux安装和使用docker教程

    linux安装和使用docker教程 文章目录 linux安装和使用docker教程 1.docker官网安装地址 2.卸载linux系统中的docker 3.安装docker 4.查看安装docke ...

  7. Linux 安装docker教程

    docker 教程 Docker是基于Go语言实现的云开源项目. 官网: https://www.docker.com/ 文档地址:https://docs.docker.com/ 超详细 仓库地址: ...

  8. linux安装docker教程 centos 7

    一.首先准备一台虚拟机,不会装虚拟机的同学可以看我前面的教程 二.准备一个远程连接工具,连接到linux系统,这里我用的是CRT 三.值得注意的一点是,在linux中安装docker有一个必要条件就是 ...

  9. 威联通装linux百度网盘,威联通NAS使用百度云Docker教程,超简单!

    原标题:威联通NAS使用百度云Docker教程,超简单! 作为国内一家独大的公有云,百度云是大家现在常用的云存储了.相信很多人的资源都有一部分存在上面,不过由于公有云的性质在那里,在对于数据安全抱有怀 ...

最新文章

  1. 手机自带的显示基站命令
  2. php require_once
  3. 硬件nat关闭还是开启_超能课堂(173):AfterBurner不止超频,还是绝佳的游戏伴侣...
  4. 使用 ramda 解析 .yarnrc/.npmrc 配置文件的例子
  5. php 类的属性与方法的注意事项
  6. 批量修改Dell服务器远程管理卡iDRAC密码
  7. 教你用canvas绘制矩形
  8. linux下limits.conf 修改不生效的原因
  9. linux 7安装mysql8.12_Linux(centOS 7)安装MySQL8.12
  10. Arcgis Javascript那些事儿(八)--图层获取与图层顺序
  11. cube 一站式云原生开源机器学习平台
  12. 统计学基础之卡方检验
  13. Silverlight:针式打印机文字模糊的改善办法
  14. SpringBoot的配置文件properties和yml格式
  15. C 语言判断某年是否为闰年该月有多少天
  16. 应用程序操作word文件报“RPC服务器不可用,HRESULT:0x800706BA”
  17. matlab主成分分析散点图_主成分分析(PCA)及其在MATLAB中的实现
  18. 国内权益标收益率的“尖峰厚尾”现象研究
  19. 软件实施工程师的工作
  20. Rust actix aiohttp_介绍 - actix-web 中文文档 - Rust-Web 开发指南

热门文章

  1. 5G真的有那么重要吗?
  2. 构筑数字底座,同济医院用全闪存提速智慧医疗
  3. 认真不一定会赢,但至少不会输
  4. iOS中.pch文件如何使用
  5. 基于labview的tcp通信设计简要教程
  6. 淘宝爬虫之强行登录如何解决Selenium被检测到的问题?
  7. 爬虫「Python」:一次登录,解决爬取淘宝商品评价繁杂的问题——简述 Headers 的使用
  8. 基础训练---身体素质
  9. python与cad交互_与命令行进行交互_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...
  10. [USACO16JAN]堡哞Fort Moo