Docker详解及常用命令介绍
目录
一、Docker简介
二、Docker与虚拟机区别
三、Docker镜像与容器介绍
四、CentOS安装Docker
五、Docker基本操作
六、自定义镜像Dockerfile
七 、docker-Compose介绍
一、Docker简介
!! Docker是一个开源的平台,可以帮助开发者
快速构建、部署和管理软件应用程序
它通过将应用程序打包为Docker镜像,使得应用程序可以在任何环境中运行
,而无需考虑底层基础设施的差异。Docker提供了一系列工具,包括Dockerfile、docker-compose、docker images等,帮助开发者从零构建一个应用程序到发布上线的整个过程。
Docker是一个快速交付应用,运行应用的技术:
可以将程序及其依赖,运行环境一起打包为一个镜像,可以 迁移到任意Linux操作系统
Docker允许开发中将 应用、依赖、函数库、一起打包,
形成可移植镜像运行时利用 沙箱机制
形成隔离容,各个应用互不干扰启动,移出都可以通过一行命令完成,方便快捷
二、Docker与虚拟机区别
docker 硬盘占用一般为MB,虚拟机一般为GB2 docker 是一个系统进程;虚拟机是在操作系统中的操作系统 docker 体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般
三、Docker镜像与容器介绍
镜像(image)
: Docker将应用程序及其所需的依赖,函数库,环境,配置,等文件打包在一起,称为镜像
容器(Container)
: 镜像中应用程序运行形成的进程就是容器,只是Docker会给容器做隔离,对外不可见
四、CentOS安装Docker
4.1 如果之前安装过旧版本的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
4.2 安装yum工具
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken
4.3 更新本地镜像源
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
4.4 安装docker
Centos7如下:
yum install -y docker-ce
注意Centos8如下:
yum install docker-ce docker-ce-cli containerd.io -y
4.5 启动、停止、重启、查看版本、设置开机自启
systemctl start docker # 启动docker服务 systemctl enable docker # 设置开机自启docker systemctl stop docker # 停止docker服务 systemctl restart docker # 重启docker服务
查看是否启动
systemctl status docker # 查看服务状态在这里插入图片描述
查看版本
docker -v
五、Docker基本操作
5.1 镜像操作
镜像名称一般分为两部分组成:[repository]:[tag] 在没有指定tag是,默认是latest,代表最新版本的镜像
docker images 查看所有镜像 docker pull 拉取自己需要的镜像,不指定则默认最新 docker rmi 删除镜像 docker save -o 保存镜像为tar docker load -i 重新加载 docker push --- 把本地镜像推送到远程仓库上在这里插入图片描述
5.2 容器操作
docker run --naem containerName -80:80 -d nginx -- 创建并运行一个容器,处于运行状态 docker stop 停止一个运行的容器 docker start 让一个停止的容器再次运行 docker restart 重新启动一个或者多个容器 docker exec -it containerName bash -- 进入到docker容器中 docker logs -f containerName -- 查看容器的运行日志 docker rm -- 容器的删除 docker ps -- 查看容器信息在这里插入图片描述
5.3 数据卷操作
5.3.1 容器与数据耦合带来的问题
不便于修改
数据 不可复用
:在容器内的修改对新创建的容器是不可复用的升级维护困难:数据在容器内,升级或更换容器必然会导致 数据丢失
5.3.2 数据卷介绍
数据卷是一个虚拟目录,指向宿主机文件系统中的某个目录.
5.3.3 数据卷操作命令
**命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:**
docker volume create 创建一个volume inspect 显示一个或多个volume的信息 ls 列出所有的volume prune 删除未使用的volume rm 删除一个或多个指定的volume
六、自定义镜像Dockerfile
镜像结构:
基础镜像(Baselmage)
: 包含基本的系统函数库,环境变量.文件系统层(Layer)
:在基础镜像基础上添加安装包,依赖,配置等,每次操作都形成新的一层入口(Entrypoint)
: 镜像运行入口,一般是程序启动的脚本和参数
Dockerfile
Dockerfile
的本质是一个文件,通过指令描述镜像的构建过程Dockerfile的第一行必须是FROM,从一个基础镜像来构建 基础镜像可以是基本操作系统,也可以是其他人制作好的镜像例如:java8-8-alpine
FROM java:8-alpine COPY ./app.jar /tmp/app.jar EXPOSE 8090 ENTRYPOINT java -jar /tmp/app.jar
构建命令
空格后面跟.
,表示Dockerfile所在目录
docker build-t javaDemo:1.0 .
七 、docker-Compose介绍
Docker-compose 可以基于Compose文件快速部署分布式应用,而
无需手动一个个创建和运行容器
Docker-compose文件可以看做是将
多个docker run 命令写到一个文件中
,只是语法稍有差异Docker-compose是一个文本文件,
通过指令定义集群中的每个容器如何运行
Docker-compose中的服务之间可以通过服务名访问
案例:
version: "3.2" services: nacos: image: nacos/nacos-server environment: MODE: standalone ports: - "8848:8848" mysql: image: mysql:5.7.25 environment: MYSQL_ROOT_PASSWORD: 123456 volumes: - "$PWD/mysql/data:/var/lib/mysql" - "$PWD/mysql/conf:/etc/mysql/conf.d/" userservice: build: ./user-service orderservice: build: ./order-service gateway: build: ./gateway ports: - "10000:10000"
部署启动
docker-compose up -d
Compose 常用命令与配置
docker-compose logs -f userservice 查看日志 docker-compose restart gateway userservice ......等等 重启
重点
发表评论