首页 > 其他分享 >微服务之Docker

微服务之Docker

时间:2022-11-26 14:12:35浏览次数:35  
标签:容器 服务 volume yum 镜像 Docker docker

大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:

依赖关系复杂,容易出现兼容性问题

开发、测试、生产环境有差异

 

Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?

Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像

Docker应用运行在容器中,使用沙箱机制,相互隔离

 

Docker如何解决开发、测试、生产环境有差异的问题

Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包

Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行

Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行

 

 

 

 

镜像和容器

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。

 

Docker和DockerHub

DockerHub:DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。

 

Docker的安装以及基本操作

Docker的卸载

如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

Docker的安装

首先需要大家虚拟机联网,安装yum工具
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken
然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast
然后输入命令:
yum install -y docker-ce

启动,停止与重启Dokcer服务

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

输入命令可查看docker版本

docker -v

镜像相关命令

镜像名称一般分两部分组成:[repository]:[tag]。

在没有指定tag时,默认是latest,代表最新版本的镜像

 

 

 

 

 

 

 

 

 

容器相关命令

 

 

 

 

 

 进入docker容器修改内容

步骤一:进入容器。进入我们刚刚创建的nginx容器的命令为:

docker exec -it mn bash

命令解读:

docker exec :进入容器内部,执行一个命令

-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

mn :要进入的容器的名称

bash:进入容器后执行的命令,bash是一个linux终端交互命令

 

创建一个支持数据持久化的redis容器

步骤一:到DockerHub搜索Redis镜像 步骤二:查看Redis镜像文档中的帮助信息 步骤三:利用docker run 命令运行一个Redis容器

docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes

 

数据卷

 

 

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。

 

数据卷操作的基本语法如下:

docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

docker volume [COMMAND]

create 创建一个volume

inspect 显示一个或多个volume的信息

ls 列出所有的volume

prune删除未使用的volume

rm删除一个或多个指定的volume

 

 

 挂载数据卷

我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器目录

docker run \
  --name mn \
  -v html:/root/html \
  -p 8080:80
  nginx \

docker run :就是创建并运行容器

-- name mn :给容器起个名字叫mn

-v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中

-p 8080:80 :把宿主机的8080端口映射到容器内的80端口

nginx :镜像名称

 

 

 

 

 

 

 

 

标签:容器,服务,volume,yum,镜像,Docker,docker
From: https://www.cnblogs.com/Yukino1903/p/16927310.html

相关文章

  • knock端口敲门服务
    端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使......
  • 使用Docker恢复Mysql8备份的Data数据 - 诚哥博客
    前段时间公司数据库服务器崩溃启动不起来,经过我初步排查是/home目录挂载不上导致启动不起来,虽然通过注释/etc/fstab中的挂载信息,启动了,但是发现mysql数据有缺失,还好有例......
  • 兆骑科创,海外高层次人才引进服务平台
    兆骑科创,海外高层次人才引进服务平台推动国家创新驱动高质量现代化发展是我们当前建设社会主义现代化强国的重要战略举措,随着当今科技水平不断向上攀升,技术发展日新月异,经济......
  • [CG] 用 Docker 配置 Ubuntu OpenGL 环境
    成功在MacOS的Docker中运行OpenGL程序并显示这里记录一下:我用的是https://hub.docker.com/r/thewtex/opengl这个镜像非常好,大部分工作都做好了,这里用的是基于CPU......
  • centos 7.9环境下安装Docker
    一、安装CentOS7.9 1.从阿里镜像下载:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spm=a2c6h.25603864.0.0.786ff5ad8J2jGC   2.虚拟机挂载ISO文件......
  • Docker数据持久化
    Docker挂载方式有3种,分别为volume,bindmount,tmpfs.volume, 挂载在宿主机指定路径bind,由开发者指定宿主机路径tmpfs,  挂载在宿主机内存   一、volume方......
  • 构建Docker镜像
    作用 根据需求构建镜像,推送到harbor私有仓库保存与管理,如有相同构件组需求,可直接下载,减少重复劳动,有利于镜像级高层次复用。一、Docker镜像构建过程1、生成Dockerfile,......
  • 搭建docker私有仓库harbor
    一、前提1.Harbor基于docker和docker-compose.首先确认计算机是否已安装Docker-compose下载,参考https://blog.csdn.net/LPClan/article/details/1211300832. 开启内核......
  • 搭建NFS文件服务器
    一、服务器端安装yuminstallrpcbindnfs-utils立即启动,配置开机自动启动systemctlstartrpcbind&&systemctlenablerpcbindsystemctlstartnfs-server&&s......
  • 微服务、gGRPC、protobuf、rest和json
    微服务、gGRPC、protobuf、rest和json到目前为止,基于REST的API已经成为大多数服务间通信的首选架构。虽然基于REST/JSON的通信有几个好处,并且得到跨语言和提供......