01 Docker概念和部署

2024-09-08 13:36
文章标签 部署 docker 概念 01

本文主要是介绍01 Docker概念和部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

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' locallylatest: 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

这篇关于01 Docker概念和部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1148253

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Solr部署如何启动

Solr部署如何启动 Posted on 一月 10, 2013 in:  Solr入门 | 评论关闭 我刚接触solr,我要怎么启动,这是群里的朋友问得比较多的问题, solr最新版本下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 1、准备环境 建立一个solr目录,把solr压缩包example目录下的内容复制

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)