云服务配置docker镜像容器以及常用操作命令

首先通过ssh进入云服务器。如何ssh进入云服务器。

简单讲解一下docker中镜像和容器,打个比方,镜像相当于印钱的那个模板,容器相当于从模板上拓下来的钱,不同的模板可以印出不同的钱。但容器被修改后也可以变成新的镜像,再印出对应的初始时相同的容器。

1.添加docker用户组

因为docker很多命令需要sudo权限,所以需要将当前用户添加进docker用户组中,命令,如下,然后输入用户密码,

sudo usermod -aG docker $USER

 

2.拉取镜像

从docker官网通过 pull 拉取一个镜像,我通过拉取乌邦图20.04为例,命令如下,如果提示没有权限,要么命令加上sudo,要么执行上一步,后面就可都避免权限不足 

docker pull unbuntu:20.04 

 

 3.查看所有镜像

docker images

 

4.删除镜像

如果要删除镜像,表示删除ubuntu:20.04这个镜像

docker image rm ubuntu:20.04 

 

 5.使用本地镜像文件

(没有则5,6,7忽略)如果本地已经有了其他服务器上的docker镜像文件,那么直接在本地执行命令,把文件传到云服务器上,然后重新进入服务器,家目录下就能看到 docker文件名 

scp 文件名  服务器别名: 

 

6.查看镜像文件

然后把将镜像从文件中加载出来,那么镜像存在了,可以用 docker images 查看

docker load -i  文件名

 

7.导出镜像文件

相反的,如果需要把服务器上的docker镜像导出到本地或迁移到其他服务器,则在服务器终端中使用命令,就可以成功导出镜像文件,导出后的文件名为自定义,

docker save -o 导出后的文件名 ubuntu:20.04 

         但此文件是仅自己可读写,所以需要修改权限,让其他人也能读,命令

chomd +r  导出后的文件名

        然后就可以通过把镜像文件迁移到其他服务器上或本地,在其他服务器上通过第 5,6 步 生成新的镜像。

8.创建容器

有了docker镜像,就可以使用命令创建容器了。在阿里云服务器中执行命令,这个命令有非常多的参数,感兴趣可以去官网查看

docker create -it ubuntu:20.04

         此时就创建好了 unbuntu:20.04的服务器容器,可以通过命令 docker ps -a 查看所有容器,但他没有运行,然后需要下面命令运行容器。

补充:        

        也可以通过 docker rm 容器id或者名称 命令删除容器,但不能删除在运行的容器,删除之前需要关闭容器,docker container  prune 删除所有已停止的容器

9.运行容器

 docker start 容器id或者名称

        id和名称在 docker ps -a 命令显示的容器列表中的id和name,再通过此命令的status就能看到容器的启动情况,此外 docker stop 容器id或者名称 命令可以关闭容器,docker restart 容器id或者名称 可以重启容器,docker run -itd ubuntu:20.04 也可以直接创建并启动容器

10.进入容器

运行容器之后,进入容器,只能进入已经运行的容器,进入之后会在root用户的根目录下,跟一个新的服务器一模一样

docker attach 容器id或者名称

 退出但挂起容器需要两段操作,先按Ctrl+p,再按Ctrl+q,如果直接退出且关闭容器,则Ctrl+d

11.在云服务器中执行docker中的命令 .

容器需要是运行状态

docker exec 容器id或者名称  命令

 比如,docker exec 82e84dbce483 ls ,就可以查看82e84dbce483这个容器中根目录下的所有文件。

12.导出容器

docker export -o xxx.tar 容器id或者名称   

将容器导出到本地文件xxx.tar中 ,然后使用命令 chmod +r xxx.rar 加上可读权限,然后就可以先scp 传到本地,再通过 scp 命令传到其他服务器上,注意此时相当于导出的是容器的镜像,其他服务器是接受的也是次容器的镜像文件。然后其他服务器 docker export docker文件名 就可以获得此docker文件的镜像,大家会发现此步骤跟 上述 5,6,7步骤中的save和load命令非常相似,但两则有一点区别,对容器的导出和导入就是export和import(但其实导入导出的都是容器的模板也是镜像),直接对镜像的导出和导入就是save和load,但export/import会丢弃历史记录和元数据信息,仅保存容器当时的快照状态,甚至连容器的名字都会被删掉,save/load会保存完整记录,体积更大

13.查看容器信息

容器需要启动,然后 docker attach 容器id或者名称 进入容器,然后执行 top 命令查看当前容器存在的进程,

可以在在云服务器使用命令 docker top 容器id或者名称 查看容器存在进程,两个方法效果基本一样

也可以在云服务器使用命令 docker stats 查看所有容器的资源占用情况

14.在本地和容器间复制文件

docker cp xxx 容器id或者名称:xxx 

docker cp 容器id或者名称:xxx xxx

xxx为文件路径或文件名

15. 重命名容器,

镜像生成容器后,容器名是随机的,这时候就可以修改容器名

docker rename 容器旧名 容器新名

 

16.修改容器限制

比如修改容器内存大小。修改完后可进入容器使用top查看

该命令可以修改的东西非常多,cpu周期,cpu使用数量,内存大小等等,可查看官网

docker update 容器id或者名称--memory 500MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/277467.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型:开启自然语言处理新纪元

导言 大语言模型,如GPT-3(Generative Pre-trained Transformer 3),标志着自然语言处理领域取得的一项重大突破。本文将深入研究大语言模型的基本原理、应用领域以及对未来的影响。 1. 简介 大语言模型是基于深度学习和变压器&…

StarCCM+ 导入STL几何模型进行仿真

使用 StarCCM 进行仿真时,通常都是用 3D-CAD Model 导入 CAD 类型的几何模型。但对于一些特殊情况,例如通过三维重建等方法获得的几何模型是 STL 文件而非 CAD 文件,这种情况下可以通过 Import Surface Mesh 的方法导入 STL 文件进行仿真&…

【Spring Boot】内网穿透实现远程调用调试

文章目录 1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址 4.…

Vue.js 使用基础知识

Vue.js 是一款用于构建用户界面的渐进式框架,它专注于视图层。Vue.js 不同于传统的 JavaScript 框架,它采用了组件化的开发方式,使得开发者可以更加高效和灵活地构建交互式的 Web 应用程序。 目录 什么是 Vue.js安装 Vue.jsVue 实例模板语法插…

模板方法模式(行为型)

目录 一、前言 二、模板模式 三、带钩子的模板模式 四、总结 一、前言 模板方法模式是一种行为型设计模式,它定义了一个操作中的算法框架,将一些步骤延迟到子类中实现。这种模式是基于“开闭原则”的设计思想,即对扩展开放,对…

vue 数字滚动加载

效果&#xff1a; 组件封装&#xff1a; <template><div><div v-for"(item, index) in total" :key"index" class"real-time-num" :style"{width:${countWidth}px,height:${countHeight}px,lineHeight:${countHeight}px,fo…

SpringMVC异常处理机制

2.1 异常描述 在J2EE项目的开发中&#xff0c;不管是对底层的数据库操作过程&#xff0c;还是业务层的处理过程&#xff0c;还是控制层的处理过程&#xff0c;都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常&#xff0c;系统的代码耦合度高&a…

在Sqlite中通过Replace来实现插入和更新

你可能在批量处理一个事务的时候&#xff0c;想要批量插入一系列的数据&#xff0c;但是这些数据当添加完一次之后&#xff0c;重新添加的时候&#xff0c;你不想要重新添加&#xff0c;只是想将原有的数据进行更新&#xff0c;例如&#xff1a;我想要通过Excel将一系列的图书导…

Peter算法小课堂—简单建模(3)

国王的奖赏系列 国王的奖赏1 题目描述&#xff1a; 你作为战斗英雄得到国王的奖赏&#xff0c;可以在地图上选一块土地。地图里共n*m格土地&#xff0c;第x行第y列的土地格子里标记着d[x][y]的整数价值&#xff0c;可能出现负数。国王让你选择若干列土地&#xff0c;只要是连…

springcloudalibaba01

整合springcloud 和 springcloudalibaba&#xff0c;&#xff0c;&#xff0c; 版本对应关系 <dependencyManagement><dependencies><!--每个springcloud的工具都有一个版本每个springcloud alibaba的工具都有一个版本统一版本--> <!-- 整合…

【lesson15】进程控制之进程等待(2)

文章目录 进程等待阻塞式等待非阻塞式等待非阻塞式等待 vs 阻塞式等待 进程等待 上次我们讲了许多关于进程等待的必要性和重要性还有其函数的使用方法&#xff0c;这次我们主要介绍函数细节方面的问题。 阻塞式等待 代码演示进程阻塞式等待 代码&#xff1a; #include <…

STL中sort的底层实现

文章目录 1、源码分析2、算法优化3、总结 在讲解STL中sort的底层原理之前&#xff0c;先引申出这样几个问题&#xff1f; ①STL中sort的底层是采用哪种或者哪几种排序&#xff1f; ②STL中sort会导致栈溢出吗&#xff1f; ③快速排序的时间复杂度是不稳定的 l o g 2 n log_2n l…