01 Docker概念和部署

news2024/11/16 16:28:56

目录

1.1 Docker 概述

1.1.1 Docker 的优势

1.1.2 镜像

1.1.3 容器

1.1.4 仓库

1.2 安装 Docker

1.2.1 配置和安装依赖环境

1.3镜像操作

1.3.1 搜索镜像

1.3.2 获取镜像

1.3.3 查看镜像

1.3.4 给镜像重命名

1.3.5 存储,载入镜像和删除镜像

1.4 Doecker容器操作

1.4.1创建和运行docker

1.4.2终止docker

1.4.3导出和导入docker

1.4.4删除docker


1.1 Docker 概述

        因为 Docker 轻便、快速的特性,可以使应用达到快速迭代的目的。每次小的变更,马上就可以看到效果,而不用将若干个小变更积攒到一定程度再变更。每次变更一小部分其实是一种非常安全的方式,在开发环境中能够快速提高工作效率。

        Docker 容器能够帮助开发人员、系统管理员、质量管理和版本控制工程师在一个生产环节中一起协同工作。制定一套容器标准能够使系统管理员更改容器的时候,程序员不需要关心容器的变化,而更专注自己的应用程序代码。从而隔离开了开发和管理,简化了开发和部署的成本。

1.1.1 Docker 的优势

Docker 容器运行速度很快,启动和停止可以在秒级实现,比传统虚拟机要快很多:Docker 核心解决的问题是利用容器来实现类似虚拟机的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。因此,Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,在保证应用性能的同时,又减小了系统开销,使得一台主机上同时运行数千个 Docker 容器成为可能。Docker 操作方便,可以通过 Dockerile 配置文件支持灵活的自动化创建和部兴。表 1-1将 Docker容器技术与传统虚拟机的特性进行了比较。

Docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要有额外的虚拟机管理程序和虚拟机操作系统层,而Docker 容器则是直接在操作系统层面之上实现的虚拟化。图 1.2 是 Docker 与传统虚拟机架构。

1.1.2 镜像

        镜像、容器、仓库是 Docker 的三大核心概念。其中 Docker 的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。例如:一个镜像可以是一个完整的 Cent OS 操作系统环境,称为一个 CentOS 镜像:也可以是一个安装了 MySQL 的应用程序,称之为一个 MySQL 镜像等等。

        Docker 提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经创建好的镜像直接使用。

1.1.3 容器

        Docker 的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证安全性的平台。可以将容器看作是一个简易版的 Linux 环境,Docker 利用容器来运行和隔离应用。

1.1.4 仓库

        Docker 仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用 push 命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。

        仓库注册服务器(Registry)是存放仓库的地方,其中包含了多个仓库。每个仓库集中存放某一类镜像,并且使用不同的标签(tag)来区分它们。目前最大的公共仓库是docker Hub,存放了数量庞大的镜像供用户下载使用。

1.2 安装 Docker

        Docker 支持在主流的操作系统平台上进行使用,包括Windows 系统、Linux 系统、以及 MacOS 系统等。目前最新的 RHEL、Cent OS 以及 Ubuntu 系统官方软件源中都已经默认自带了Docker 包,可直接安装使用,也可以用 Docker 自己的YUM 源进行配置。

        Cent OS 系统下安装 Docker 可以有两种方式:一种是使用 CURL 获得 Docker 的安装脚本进行安装,另一种是使用YUM 仓库来安装 Docker。

        注意:目前 Docker 只能支持 64 位系统。

1.2.1 配置和安装依赖环境

[root@bogon ~]# systemctl stop firewalld



[root@bogon ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@bogon ~]# setenforce 0

[root@bogon ~]# sed -i 's/=enforcing/=disabled/'  /etc/selinux/config 
//更换yum源
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
##Step 4:添加国内镜像站
mkdir /etc/docker/
cat>/etc/docker/daemon.json<<EOF
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
#Step 5: 开启Docker服务
systemctl restart docker
systemctl enable docker
docker version
cat>> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1 
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p
service docker start

1.3镜像操作

1.3.1 搜索镜像

语法:docker search lamp

[root@bogon ~]# docker search lamp
NAME                  DESCRIPTION                       STARS     OFFICIAL
javanile/lamp         Ready to use LAMP stack           2         
dockette/devstack     My LAMP/Devstack Dockerfile       4         
machines/la_p7        Just a ubuntu based lamp server   5         
zmm1/lamp             lamp                              0         
danku2/lamp           lamp                              0         
mooseh81/lamp         lamp                              0         
rahulvramesh/lamp     Lamp                              0         
akharis76/lamp        lamp                              0         
clarkzhang/lamp       lamp                              1         
liachovskis/lamp      lamp                              0         
sree2424/lamp         LAMP                              0         
lizeqing/lamp         lamp                              0         
rogalikk960/lamp      LAMP                              0         
avatao/lamp           Lamp                              0         
themankudz/lamp       lamp                              0         
carmelg/lamp          Lamp                              0         
pvitoroliveira/lamp   LAMP                              0         
ztj1993/lamp          lamp                              0         
hanhongwen86/lamp     lamp                              0         
echo110/lamp          lamp                              0         
kgc12345626/lamp      lamp                              0         
bluelockr/lamp        lamp                              0         
yiwang666/lamp        lamp                              0         
jin7/lamp             lamp                              0         
whyte624/lamp         lamp                              0  

1.3.2 获取镜像

语法:docker pull 镜像名称

[root@bogon ~]# docker pull javanile/lamp   //搜索镜像把想获取的镜像名字复制
Using default tag: latest
latest: Pulling from javanile/lamp
177e7ef0df69: Pull complete 
9bf89f2eda24: Pull complete 
350207dcf1b7: Pull complete 
a8a33d96b4e7: Pull complete 
c0421d5b63d6: Pull complete 
f76e300fbe72: Pull complete 
af9ff1b9ce5b: Pull complete 
d9f072d61771: Pull complete 
2a25fcb23d18: Pull complete 
0e496ab19dff: Pull complete 
2a5d39fc92ab: Pull complete 
8603dc5a76e7: Pull complete 
4525497200a2: Pull complete 
df66f65de27a: Pull complete 
713450f54733: Pull complete 
671fe08b3a47: Pull complete 
137a046abb87: Pull complete 
95e5fdb4ef1e: Pull complete 
25120b64e168: Pull complete 
b98e7028aee5: Pull complete 
dc19ac08c236: Pull complete 
8d52f75adf6b: Pull complete 
5eccdeef64ae: Pull complete 
67abf7efecfb: Pull complete 
630fc12f5841: Pull complete 
ef5e50840ada: Pull complete 
a0bb707f7630: Pull complete 
7c6e8038d8ad: Pull complete 
Digest: sha256:09417dcad61160eb823c10ac1358534b34099183e07d73697dabafb691cac12a
Status: Downloaded newer image for javanile/lamp:latest
docker.io/javanile/lamp:latest

1.3.3 查看镜像

语法:docker images

[root@bogon ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED       SIZE
javanile/lamp   latest    93e4adef599c   5 years ago   590MB

也可以去浏览器搜索

OpenAtom Foundation - 开放原子开源基金会

[root@bogon ~]# docker pull hub.atomgit.com/library/nginx:1.24-bullseye-perl
1.24-bullseye-perl: Pulling from library/nginx
1a82ea2e025a: Pull complete 
3ef6bc7c6b34: Pull complete 
b8ea68ef5510: Pull complete 
152901865926: Pull complete 
b39f33faf2b2: Pull complete 
cf865bd10e05: Pull complete 
9e86338fed04: Pull complete 
Digest: sha256:5ea912c7bb6484dc11449d6de083739bd20bb6bda5d6ab734efab5df8795f683
Status: Downloaded newer image for hub.atomgit.com/library/nginx:1.24-bullseye-perl
hub.atomgit.com/library/nginx:1.24-bullseye-perl
[root@bogon ~]# docker pull hub.atomgit.com/amd64/php:8.0.30-zts-alpine3.16
8.0.30-zts-alpine3.16: Pulling from amd64/php
7c8cfa7ced9c: Pull complete 
d7ea62a47e45: Pull complete 
e0f7352b80f9: Pull complete 
eba0b083dedc: Pull complete 
af5bc0af13d5: Pull complete 
cd059df25d90: Pull complete 
19e54be3f36c: Pull complete 
c1520122c20b: Pull complete 
44b661e0c458: Pull complete 
Digest: sha256:557389c60b0441f78932adb353549d05278bdea0e8b4318f0105731e2ce39343
Status: Downloaded newer image for hub.atomgit.com/amd64/php:8.0.30-zts-alpine3.16
hub.atomgit.com/amd64/php:8.0.30-zts-alpine3.16
[root@bogon ~]# docker images
REPOSITORY                      TAG                     IMAGE ID       CREATED        SIZE
hub.atomgit.com/amd64/php       8.0.30-zts-alpine3.16   84fecea0dbc0   9 months ago   70MB
hub.atomgit.com/library/nginx   1.24-bullseye-perl      31364c7f01e7   9 months ago   190MB
javanile/lamp                   latest                  93e4adef599c   5 years ago    590MB

1.3.4 给镜像重命名

语法 docker tag 容器名称:[标签] 新容器名称:[标签]

[root@bogon ~]# docker tag hub.atomgit.com/library/nginx:1.24-bullseye-perl  nginx:nv1.24
[root@bogon ~]# docker images
REPOSITORY                      TAG                     IMAGE ID       CREATED        SIZE
hub.atomgit.com/amd64/php       8.0.30-zts-alpine3.16   84fecea0dbc0   9 months ago   70MB
nginx                           nv1.24                  31364c7f01e7   9 months ago   190MB
hub.atomgit.com/library/nginx   1.24-bullseye-perl      31364c7f01e7   9 months ago   190MB
javanile/lamp                   latest                  93e4adef599c   5 years ago    590MB

1.3.5 存储,载入镜像和删除镜像

存储语法:docker save -o 存储文件名 仓库名:[标签]

删除语法:docker rmi 镜像号或者仓库名:[标签]

载入语法:docker load < 存储的文件名

//存储
[root@bogon ~]# docker save -o nginx01  nginx:nv1.24
[root@bogon ~]# ls
anaconda-ks.cfg  nginx01
//删除
[root@bogon ~]# docker rmi nginx:nv1.24
Untagged: nginx:nv1.24
[root@bogon ~]# docker images
REPOSITORY                      TAG                     IMAGE ID       CREATED        SIZE
hub.atomgit.com/amd64/php       8.0.30-zts-alpine3.16   84fecea0dbc0   9 months ago   70MB
hub.atomgit.com/library/nginx   1.24-bullseye-perl      31364c7f01e7   9 months ago   190MB
javanile/lamp                   latest                  93e4adef599c   5 years ago    590MB
//载入
[root@bogon ~]# docker load <nginx01 
Loaded image: nginx:nv1.24
[root@bogon ~]# docker images
REPOSITORY                      TAG                     IMAGE ID       CREATED        SIZE
hub.atomgit.com/amd64/php       8.0.30-zts-alpine3.16   84fecea0dbc0   9 months ago   70MB
nginx                           nv1.24                  31364c7f01e7   9 months ago   190MB
hub.atomgit.com/library/nginx   1.24-bullseye-perl      31364c7f01e7   9 months ago   190MB
javanile/lamp                   latest                  93e4adef599c   5 years ago    590MB

1.4 Doecker容器操作

1.4.1创建和运行docker

语法:docker create -it 容器名称 容器ID 分配一个伪终端

  • -i:容器的输入保持打开
  • -t:让docker分配一个伪终端
[root@bogon ~]# docker images
REPOSITORY                      TAG                     IMAGE ID       CREATED        SIZE
hub.atomgit.com/amd64/php       8.0.30-zts-alpine3.16   84fecea0dbc0   9 months ago   70MB
nginx                           nv1.24                  31364c7f01e7   9 months ago   190MB
hub.atomgit.com/library/nginx   1.24-bullseye-perl      31364c7f01e7   9 months ago   190MB
javanile/lamp                   latest                  93e4adef599c   5 years ago    590MB
[root@bogon ~]# docker create -it  nginx 31      //31 IMAGE ID 的开头2个数字
Unable to find image 'nginx:latest' locally

latest: Pulling from library/nginx
a2318d6c47ec: Pull complete 
095d327c79ae: Pull complete 
bbfaa25db775: Pull complete 
7bb6fb0cfb2b: Pull complete 
0723edc10c17: Pull complete 
24b3fdc4d1e3: Pull complete 
3122471704d5: Pull complete 
Digest: sha256:04ba374043ccd2fc5c593885c0eacddebabd5ca375f9323666f28dfd5a9710e3
Status: Downloaded newer image for nginx:latest
623dc9642a3f216d0de1c34f65788711338b03691b402e29999258dec30b6f85

[root@bogon ~]# docker run -it nginx &
[root@bogon ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                   CREATED              STATUS                       PORTS     NAMES
74a4a4169407   nginx     "/docker-entrypoint.…"   2 seconds ago        Up 1 second                  80/tcp    wonderful_chatelet

1.4.2终止docker

语法:docker stop 容器ID/名称

[root@bogon ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS     NAMES
74a4a4169407   nginx     "/docker-entrypoint.…"   5 minutes ago   Up 5 minutes   80/tcp    wonderful_chatelet
[root@bogon ~]# docker stop 74a4a4169407 
74a4a4169407
[root@bogon ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS                     PORTS     NAMES
74a4a4169407   nginx     "/docker-entrypoint.…"   5 minutes ago   Exited (0) 2 seconds ago             wonderful_chatelet
[root@bogon ~]# 

1.4.3导出和导入docker

语法:docker export 容器ID/名称 > 文件名

[root@bogon ~]# docker export 74a4a4169407 >  nginx

[root@bogon ~]# ls
anaconda-ks.cfg  nginx  nginx01

1.4.4删除docker

语法:docker rm 容器ID/名称

[root@bogon ~]# docker rm 74a4a4169407
74a4a4169407
[root@bogon ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

逆向基础一阶段检测-1

前言&#xff1a; 记录一下&#xff0c;最开始学习逆向时&#xff0c;rkvir所出的题目~&#xff08;当时不会&#xff09; 查壳。 32ida打开。 进入main函数&#xff1a; 对于这种情况&#xff0c;我们可以考虑直接在if cmp判断时&#xff0c;下断点去查看值&#xff0c;因为…

Unet改进31:添加Star_Block(2024最新改进方法)|紧凑的网络结构和高效的运算

本文内容:在不同位置添加Star_Block 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 最近的研究引起了人们对网络设计中尚未开发的“星型操作”(元素智能乘法)潜力的关注。虽然有很多直观的解释,但其应用背后的基本原理在很大程度上仍未被探索。我们的研…

论文学习笔记 VMamba: Visual State Space Model

概览 这篇论文的动机源于在计算机视觉领域设计计算高效的网络架构的持续需求。当前的视觉模型如卷积神经网络&#xff08;CNNs&#xff09;和视觉Transformer&#xff08;ViTs&#xff09;在处理大规模视觉任务时展现出良好的表现&#xff0c;但都存在各自的局限性。特别是&am…

ROS入门教程(八)—— 路径规划导航实战

通过Gazebo仿真和RViz仿真的学习后,本文将通过Gazebo与RViz联合仿真实现机器人在Gazebo仿真环境中运动,通过远距搜索与近距搜索实现机器人路径规划导航。 目录 前言 实现思路 仿真模型 仿真源码 前言 前面的ROS入门教程提供ROS仿真的基础步骤,本文提供了实现思路,仿真…

Java面试篇基础部分-Java中常用的I/O模型

阻塞I/O模型 阻塞式的I/O模型是一种非常常见的I/O模型机制,在进行数据读写操作的时候,客户端会发生阻塞等待。 工作流程如图所示,该用户线程一直阻塞,等待内存中的数据就绪;内存中的数据就绪之后,内核态的数据将拷贝到用户线程中,并且返回I/O的执行结果到用户线程。这个…

视觉检测中的深度学习应用

引言 视觉检测是计算机视觉的一个重要领域&#xff0c;涉及到对图像或视频流进行分析和理解。随着深度学习技术的迅猛发展&#xff0c;视觉检测领域发生了革命性的变化。深度学习通过使用复杂的神经网络模型&#xff0c;尤其是卷积神经网络&#xff08;CNNs&#xff09;&#…

一些硬件知识(二十一)

高侧开关应该选用P-MOS还是N-MOS呢&#xff1f; 高侧开关就是负载是接地的&#xff0c;开关相对于负载处于高电位&#xff0c;如下图所示。如果将开关和负载的位置互换&#xff0c;就是低侧开关。 P-MOS作为高侧开关的示意图如下图所示。要想P-MOS管导通&#xff0c;则VgsVg-V…

express框架(二)

中间件 什么是中间件 中间件&#xff08;Middleware&#xff09;本质是一个回调函数&#xff0c;中间件函数可以像路由回调一样访问请求对象&#xff08;request&#xff09;&#xff0c;响应对象&#xff08;response&#xff09;。 中间件的作用 使用函数封装公共操作&am…

kitti数据深度图转点云坐标计算方法与教程(代码实现)

文章目录 前言一、kitti深度图官网介绍1、官网深度图介绍2、深度图读取官网代码(python)3、深度图解读1、数据格式内容2、深度图加工3、深度图转相机坐标深度二、kitti数据内参P矩阵解读1、P2矩阵举例2、内参矩阵 (3x3)3、特殊平移向量(第4列)4、kitti的bx与by解释三、kitti深…

【getshell】phpmyadmin后台getshell(4.8.5)

&#x1f3d8;️个人主页&#xff1a; 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞&#x1f44d;收藏&#x1f497;支持一下哦 【getshell】phpmyadmin后台getshell&#xff08;4.8.5&#xff09; 一、进入sql命令输入界面二、上传代码三、getshell 一、进入…

LINQ 和 LINQ扩展方法 (1)

LINQ函数概念&#xff1a; LINQ&#xff08;Language Integrated Query&#xff09;是一种C#语言中的查询技术&#xff0c;它允许我们在代码中使用类似SQL的查询语句来操作各种数据源。这些数据源可以是集合、数组、数据库、XML文档等等。LINQ提供了一种统一的编程模型&#x…

2024/9/11 数学20题(拐点、定积分比大小、二重积分比大小)

拐点&#xff1a; 1000题基础篇&#xff1a; 1000题强化篇&#xff1a; 选b 、 定积分比大小&#xff1a; 二重积分比大小&#xff1a;

【读书笔记-《30天自制操作系统》-19】Day20

本篇的内容围绕系统调用展开。为了让应用程序能够调用操作系统功能&#xff0c;引入了系统调用以及API的概念。首先实现了显示单个字符的API&#xff0c;让应用程序通过传递地址的方式进行调用&#xff1b;接下来又改进为通过中断的方式进行调用。在此基础上继续实现了显示字符…

【CanMV K230 AI视觉】人脸姿态(脸部朝向)

【CanMV K230 AI视觉】人脸姿态&#xff08;脸部朝向&#xff09; 人脸姿态&#xff08;脸部朝向&#xff09; &#xff08;动态测试效果可以去下面网站自己看。&#xff09; B站视频链接&#xff1a;已做成合集 抖音链接&#xff1a;已做成合集 人脸姿态&#xff08;脸部朝向…

基于yolov8的工程车辆挖掘机叉车卡车检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的工程车辆&#xff08;如挖掘机、叉车、卡车&#xff09;检测系统是一种利用先进深度学习技术的智能监控系统。该系统集成了YOLOv8算法&#xff0c;该算法以其高效的检测速度和准确的识别能力著称&#xff0c;特别适用于实时视频分析场景。 该系统通…

C2 Magic 附工具下载,供学习使用

最近&#xff0c;我们进行了一次安全演练&#xff0c;想要模拟一些复杂的攻击场景并测试我们的防御能力。这时&#xff0c;我想到了一款开源工具&#xff0c;它在处理抗沙箱后门启动和隐蔽ShellCode调用方面表现得非常出色。这款工具的设计理念是为了帮助安全团队更好地应对高级…

使用QT界面运行roslaunch,roslaunch,roscore等

QT通过界面运行rosrun,roslaunch,roscore等 QT 运行roslaunch加入ui界面修改cmakelist运行 使用qt界面运行rosrun&#xff0c;roscore,roslaunch等方法一方法二方法三 QT 运行roslaunch 首先需要使用QT安装好ROS插件&#xff0c;并且配置好环境&#xff0c;这个在之前的文章已…

nvm ls-remote: N/A

背景&#xff1a; 项目因为node版本问题运行失败&#xff0c;在彻底删除node后再重新安装 问题描述&#xff1a; 原因分析&#xff1a; 可能是因为终端不能获取镜像包 解决办法&#xff1a; 【方法一】 输入&#xff1a; step1. export NVM_NODEJS_ORG_MIRRORIndex of …

数据处理与统计分析篇-day01-Linux基础与环境搭建

day01-Linux基础 计算机简介 概述 电子计算机, 电脑, PC, Computer, 就是由 软件 硬件组成的 电子设备. 组成 计算机硬件 CPU(运算器, 控制器) 存储器(内存, 外存) 输入设备 输出设备 计算机软件 系统软件: 充当 用户 和 计算机硬件之间的 桥梁的. PC端: windows, Linu…

Elasticsearch 使用误区之五——单次请求获取大量数据

在使用 Elasticsearch 进行数据查询时&#xff0c;很多开发者、读者会遇到这样的问题&#xff1a;一次性检索大量数据&#xff0c;导致查询速度缓慢、网络延迟增加&#xff0c;甚至影响系统的整体性能。 单次获取过多数据不仅增加了网络传输的负担&#xff0c;还会使查询过程复…