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 来运行,太大了,存储的数据太多

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

 

 

目录
相关文章
|
2天前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
|
10天前
|
Linux 虚拟化 Docker
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
60 1
|
11天前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
18天前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
49 19
|
21天前
|
人工智能 文字识别 安全
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
Stirling-PDF 是一款基于 Docker 的本地化 PDF 编辑工具,支持 50 多种 PDF 操作,包括合并、拆分、转换、压缩等,同时提供多语言支持和企业级功能,满足个人和企业用户的多样化需求。
74 6
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
|
1月前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
235 91
|
1月前
|
监控 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
81 20
|
1月前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
355 15
|
1月前
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
2月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
221 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结

热门文章

最新文章