大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:
依赖关系复杂,容易出现兼容性问题
开发、测试、生产环境有差异
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