首页 > 系统相关 >Linux_9 docker教程

Linux_9 docker教程

时间:2024-02-20 16:24:37浏览次数:36  
标签:容器 教程 xxx CONTAINER Linux ubuntu 镜像 docker

title:(在线学习平台) link:(https://www.acwing.com/) cover:(https://cdn.acwing.com/media/activity/surface/log.png)

1.将当前用户添加到docker用户组

为了避免每次使用docker命令都需要加上sudo权限,可以将当前用户加入安装中自动创建的docker用户组(可以参考官方文档):

sudo usermod -aG docker $USER
执行完此操作后,需要退出服务器,再重新登录回来,才可以省去sudo权限,或将当前用户加入安装中自动创建的docker用户组后,仍然提示Got permission denied , 可以运行 newgrp docker #更新用户组

2.镜像(images)

image

每个镜像可以生成不同容器,不同容器的环境相同,相当于一个服务器;在迁移的时候,将容器打包成一个镜像(压缩文件),传到其他服务器,加载到docker当中,用这个镜像再生成新的容器。

  1. docker pull ubuntu:20.04:拉取一个镜像ubuntu:20.04

    • 镜像格式image
    • 从docker官方,类似于GitHub拉取
  2. docker images:列出本地所有镜像

  3. docker image rm ubuntu:20.04 或 docker rmi ubuntu:20.04:删除镜像ubuntu:20.04

  4. docker [container] commit CONTAINER IMAGE_NAME:TAG:创建某个container的镜像,命令中[container]可写可不写,CONTAINER指容器名称,IMAGE_NAME:TAG镜像名称。

  5. docker save -o XXX.tar YYY:将镜像YYY导出到本地文件XXX中。

    • 例:docker save -o ubuntu_20_04.tar ubuntu:20.04将镜像ubuntu:20.04导出到本地文件ubuntu_20_04.tar中。
  6. docker load -i XXX.tar:将镜像XXX从本地文件XXX.tar中加载出来。

    • 例:docker load -i ubuntu_20_04.tar将镜像ubuntu:20.04从本地文件ubuntu_20_04.tar中加载出来

3.容器(container)

  1. docker [container] create -it ubuntu:20.04:利用镜像ubuntu:20.04创建一个容器。
  • 可在docker官网搜索docker create,有很多官方命令
  1. docker ps -a:查看本地的所有容器
    docker ps :查看本地的所有运行的容器
  2. docker [container] start CONTAINER:启动容器
  • CONTAINER可以为容器的ID或者名称
    image
    image
  1. docker [container] stop CONTAINER:停止容器

  2. docker [container] restart CONTAINER:重启容器

  3. docker [contaienr] run -itd ubuntu:20.04:创建并启动一个容器

    • docker [contaienr] run -it ubuntu:20.04:创建并启动并且进入容器
  4. docker [container] attach CONTAINER:进入容器(只能进入正在运行的容器)

    • 先按Ctrl-p,再按Ctrl-q可以挂起容器(退出了但容器不关)
  5. docker [container] exec CONTAINER COMMAND:在容器中执行命令
    image

  6. docker [container] rm CONTAINER:删除容器

  7. docker container prune:删除所有已停止的容器

  8. docker export -o xxx.tar CONTAINER:将容器CONTAINER导出到本地文件xxx.tar中
    image
    image

  9. docker import xxx.tar image_name:tag:将本地文件xxx.tar导入成镜像,并将镜像命名为image_name:tag

  10. docker export/importdocker save/load的区别:

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

  12. docker stats:查看所有容器的统计信息,包括CPU、内存、存储、网络等信息

    • ctrl+c退出
  13. docker cp xxx CONTAINER:xxx docker cp CONTAINER:xxx xxx:在本地和容器间复制文件
    image

  14. docker rename CONTAINER1 CONTAINER2:重命名容器

  15. docker update CONTAINER --memory 500MB:修改容器限制

4.实战

进入AC Terminal,然后:

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 attach my_docker_server  # 进入创建的docker容器
passwd  # 设置root密码
  • 去云平台控制台中修改安全组配置,放行端口20000。
    image
    image
    image

  • 返回AC Terminal,即可通过ssh登录自己的docker容器:

    • ssh [email protected] -p 20000 # 将xxx.xxx.xxx.xxx替换成自己租的服务器的IP地址
    • 然后,可以仿照上节课内容,创建工作账户acs。
  • 最后,可以参考Linux_4 ssh登录配置docker容器的别名和免密登录。

小Tips
如果apt-get下载软件速度较慢,可以参考清华大学开源软件镜像站中的内容,修改软件源。

标签:容器,教程,xxx,CONTAINER,Linux,ubuntu,镜像,docker
From: https://www.cnblogs.com/jia-ming/p/18023163

相关文章

  • 【转载】linux利用crontab添加定时任务详解
    crontab作用:添加,查询,删除系统计划任务的指令。[root@localhost~]#crontab[选项]选项:   -e:   编辑crontab定时任务   -l:   查询crontab任务   -r:   删除当前用户所有的crontab任务1234512345[root@localhost~]#crontab-e......
  • am33xx linux中断处理流程
    运行环境kernel5.10 CPUTiam33xxlinux中断的3个结构体structirq_desc{ structirq_common_data irq_common_data; structirq_data irq_data; unsignedint__percpu *kstat_irqs; irq_flow_handler_t handle_irq; structirqaction *action; /*IRQact......
  • linux 中sed 命令设置从第n个开始替换
     001、[root@pc1test1]#lsa.txt[root@pc1test1]#cata.txt##测试文件abcdaaakaassaa[root@pc1test1]#sed's/a/Q/g'a.txt##加g;默认是全部替换QbcdQQQkQQssQQ[root@pc1test1]#sed's/a/Q/2g'a.txt##从每行的第二个开始替换abc......
  • 【前端开发】VSCode下载安装教程,新手入门(超详细)附安装包
    ​1.VSCode简介        VSCode,全称VisualStudioCode,是一款由微软开发的跨平台源代码编辑器,可用于Windows、Linux和macOS操作系统。以下是对VSCode的详细介绍:功能丰富:VSCode支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并内置了命令行工......
  • linux 中shell脚本的执行方法对路径的影响
     4种;01、basha.sh02、sha.sh03、.a.sh04、source 前两种会重开shell终端;后两种是本shell;测试如下:001、测试前两种方法;不影响当前路径[root@pc1test1]#lsa.sh[root@pc1test1]#pwd##当前路径/home/test1[root@pc1test1]#cata.sh#......
  • linux 中 在终端命令行如何输出!号
     001、问题shell终端下,双引号内输出!报错[root@pc1test1]#echo"helloworld!"-bash:!":eventnotfound 002、问题原因终端中!表示执行历史命令。 003、解决方法a、使用单引号[root@pc1test1]#echo'helloworld!'##使用单引号helloworld! b......
  • Docker中创建SQLServer
    1.背景是我在本地想安装SQLServer本地存储,一直在最后一步就是安装失败2.然后就想着在docker中安装SQLServer,然后再通过SSMS连接过来。第一步就是先安装Dockerwindowsdockerdesktop安装sqlserver2022_docker安装sql和vs2022-CSDN博客我装的Docker的windows是 安装成功后......
  • 【linux新手起步03】linux下载中文输入法。
    linux下载中文输入法一、(全英文环境下载报错)E:Unabletolocatepackagefcitx二、apt更新三、安装中文环境包四、配置中文输入法一.(全英文环境下载报错)E:Unabletolocatepackagefcitxsudoaptinstallfcitx5fcitx5-pinyinroot权限下apt下载出现以下问题:E:......
  • 《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(2)-Wireshark在Windows系统上
    1.简介上一篇主要讲解一下软件的介绍以及软件的抓包原理。2.安装部署环境2.1操作系统1.宏哥的环境是Windows10版本64位系统(32位的同学自己想办法哦),其实宏哥觉得无论在什么平台,多少位,其实安装都是类似的,非常easy的。如下图所示:2.2软件版本1.Wireshark的版本,宏哥在官网下载......
  • MongoDB 入门教程
    基本概念数据库(Database)是集合的容器,相当于关系型DB中的数据库集合(Collection)数据库中的一组文档,相当于SQL中的表文档(Document)集合中的一条记录,相当于SQL的表中的一行。不同的文档之间不必有相同的结构,这一点是和SQL不同的。字段(Field)文档中的键值对,相当于SQL中的列。比......