centos 部署docker容器 安装 、基本使用方法(一)

简介: centos 部署docker容器 安装 、基本使用方法(一)

实验环境: CENTOS 7.4

官方网站:https://www.docker.com/

源代码下载:https://github.com/docker/docker.github.io

安装说明 https://docs.docker.com/compose/install/#prerequisites

docker容器技术和虚拟机对比:

相同点: docker容器技术和虚拟机技术,都是虚拟化技术。

docker相对于VM虚拟机,少了虚拟机操作系统这一层,所以docker效率比虚拟机高

 

一、安装 直接使用centos系统自带的yum源安装

yum -y install docker  

启动docker平台:

[root@146~]# systemctl start docker   #启动 docker 服务

[root@146~]# systemctl enable docker  #设置开机启动docker服务

[root@146~]# docker version   #显示 Docker 版本信息

查看 docker 信息(确认服务运行)显示 Docker 系统信息,包括镜像和容器数。

info信息中 :

Network: bridge host macvlan null overlay #桥接到主机的 docker0 上,在物理机上执行ifconfig 可以看到 docker0 桥设备

Docker Root Dir: /var/lib/docker ##默认的 docker 的家目录

Registry: https://index.docker.io/v1/ #默认的 dockerhub 的镜像源

 

建立 docker 用户组(参考)

默认情况下, docker  命令会使用 Unix socket 与 Docker 引擎通讯。而只有root  用户和  docker  组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用  root  用户。因此,更好地做法是将需要使用  docker  的用户加入  docker  用户组。建立  docker  组:        $ sudo groupadd docker

将当前用户加入  docker  组:              $ sudo usermod -aG docker $USER

 

下载docker镜像

[root@146~]# docker search centos  #从 Docker Hub 中搜索符合条件的镜像。

名字                        描述                             受欢迎受欢迎程度  是否官方提供

如果OFFICIAL 为[ok] ,说明可以放心使用。

方法1:从公网docker hub 拉取(下载)image   pull:拉

[root@146~]# docker pull docker.io/centos

(#报错了,因为网络的问题。 无法连接到dockerhub 下载镜像。 如果你的网络没有问题,你可以下载。)

方法2:163镜像

[root@146 ~]# docker pull hub.c.163.com/library/tomcat:latest

[root@146 ~]# docker images

REPOSITORY                     TAG           IMAGE ID            CREATED             SIZE

hub.c.163.com/library/tomcat   latest         72d2be374029        4 months ago        292.4 MB

查看 images 列表

[root@146 ~]# docker images  #列出本地所有镜像。其中 [name] 对镜像名称进行关键词查询。

[root@146 ~]# docker images

 

请开启动网络转发功能 否则回报IPV4的错误

开启动网络转发功能,默认会自动开启.

手动开启:
[root@146 ~]# vim /etc/sysctl.conf  #插入以下内容   (也可以 echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf  直接添加)
net.ipv4.ip_forward = 1
[root@146 ~]# sysctl  -p   #生效
net.ipv4.ip_forward = 1
[root@146 ~]# cat /proc/sys/net/ipv4/ip_forward
1

否则会报错以下警告: WARNING: iPv4 forwarding is disabled network will not work 的处理

 

虚悬镜像

上面的镜像列表中,还可以看到一个特殊的镜像,这个镜像既没有仓库名,也没有

标签,均为  <none>  。:

<none> <none> 00285df0df87 5 d

ays ago 342 MB

这个镜像原本是有镜像名和标签的,原来为  mongo:3.2  ,随着官方镜像维护,发布了新版本后,重新  docker pull mongo:3.2  时, mongo:3.2  这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了<none>  。除了  docker pull  可能导致这种情况, docker build  也同样可以导致这种现象。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为  <none>  的镜像。

这类无标签镜像也被称为 虚悬镜像(dangling image)

一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命

令删除。

$ docker rmi $(docker images -q -f dangling=true)

二、docker平台基本使用方法

例1:运行一个 container并加载镜像centos,运行起来这个实例后,在实例中执行 /bin/bash命令

docker常用参数:

run  运行

-i   以交互模式运行容器,通常与 -t 同时使用;

-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-d 后台运行   再次进入一个正在运行的容器   docker attach   id或name  

[root@146~]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

docker.io/centos    latest              196e0ce0c9fb        12 days ago         196.6 MB

[root@146~]# docker run  -it docker.io/centos:latest /bin/bash   #启动一个实例,也就2秒就可以搞定

[root@068fd8c70344 /]# ls   #查看实例环境

[root@f072b5ae7542 /]# cat /etc/redhat-release

退出容器:

[root@f072b5ae7542 /]#exit

 

例2:在 container 中启动一个长久运行的进程,不断向stdin输出 hello world 。模拟一个后台运行的服务

docker常用参数:

-d  后台运行容器,并返回容器ID;

-c 后面跟待完成的命令

[root@146~]# docker run  -d docker.io/centos:latest /bin/sh -c "while true;do echo hello world; sleep 1; done"

1b3493487c4fde6eb233d59fa9ab9a204ad993cd3debbd5a9a28be6816694605

#容器的ID

从一个容器中取日志,查看输出的内容

语法: docker  logs   容器实例的Name/ID  

[root@146~]# docker logs 1b3493487c4    #容器的ID可以写全,也可以不写全,只要唯一就可以了

查看正在运行的容器:

[root@146~]# docker ps  #列出所有运行中容器。

[root@146~]# docker ps -a  #-a 列出所有容器(含沉睡/退出状态的容器);

例3:杀死一个容器。 比如:杀死一个正在后台运行的容器

杀死ID为c4a213627f1b容器

[root@146~]# docker kill c4a213627f1b #杀死一个容器

[root@146~]# docker stop 1a63ddea6571 #关闭容器

[root@146~]# docker restart 1a63ddea6571 #重启

删除指定 container : rm

[root@146~]# docker rm  e085da6919af

[root@146~]# docker rm -f 1a63ddea6571 #强制删除

删除镜像 :decker rmi 镜像id  

.docker 特性:

文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。

资源隔离:系统资源,像 CPU 和内存等可以分配到丌同的容器中,使用 cgroup。

网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和 IP 地址。

日志记录:Docker 将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。

变更管理:容器文件系统的变更可以提交到新的镜像中,并可重复使用以创建更多的容器。无需使用模板或手劢配置。

交互式 shell:Docker 可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互 shell。

优点:

1.一些优势和 VM 一样,但不是所有都一样。

比 VM 小,比 VM 快,Docker 容器的尺寸减小相比整个虚拟机大大简化了分布到云和从云分发时间和开销。Docker 启劢一个容器实例时间徆短,一两秒就可以启劢一个实例。

2.对于在笔记本电脑,数据中心的虚拟机,以及任何的云上,运行相同的没有变化的应用程序,IT 的发布速度更快。

Docker 是一个开放的平台,构建,发布和运行分布式应用程序。

Docker 使应用程序能够快速从组件组装和避免开发和生产环境乊间的摩擏。

3.您可以在部署在公司局域网或云或虚拟机上使用它。

4.开发人员并丌关心具体哪个 Linux 操作系统

使用 Docker,开发人员可以根据所有依赖关系构建相应的软件,针对他们所选择的操作系统。

然后,在部署时一切是完全一样的,因为一切都在 DockerImage 的容器在其上运行。

开发人员负责并且能够确保所有的相关性得到满足。

5.Google,微软,亚马逊,IBM 等都支持 Docker。

6.Docker 支持 Unix/Linux 操作系统,也支持 Windows 或 Mac

缺点局限性:

1.Docker 用于应用程序时是最有用的,但并丌包含数据。日志,跟踪和数据库等通常应放在 Docker

容器外。 一个容器的镜像通常都徆小,丌适合存大量数据,存储可以通过外部挂载的方式使用。比如使用:

NFS,ipsan,MFS 等, -v 映射磁盘分区

一句话:docker 叧用于计算,存储交给别人。

oracle  不适合使用 docker 来运行,太大了,存储的数据太多

---------------------

 

 

目录
相关文章
|
8月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
892 6
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
1099 20
|
开发者 Docker 容器
获取Docker基础使用方法:让容器化变得轻松。
对于Docker的初学者来说,了解这些基础知识点就足够了。实践是最好的老师,越是动手操作,对Docker的理解会越深。祝阅读这篇文章的开发者们一切顺利,愿你在Docker的海洋中航行顺利!
276 17
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
1127 30
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
551 16
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
14956 37
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
584 20
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
752 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
1837 15
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
590 5