Docker详解及常用命令介绍

admin 2023-11-05 554 阅读 0评论

一、Docker简介

二、Docker与虚拟机区别

三、Docker镜像与容器介绍

四、CentOS安装Docker

五、Docker基本操作

六、自定义镜像Dockerfile

七 、docker-Compose介绍

一、Docker简介

!! Docker是一个开源的平台,可以帮助开发者快速构建、部署和管理软件应用程序它通过将应用程序打包为Docker镜像,使得应用程序可以在任何环境中运行,而无需考虑底层基础设施的差异。Docker提供了一系列工具,包括Dockerfile、docker-compose、docker images等,帮助开发者从零构建一个应用程序到发布上线的整个过程。

Docker是一个快速交付应用,运行应用的技术:

  1. 可以将程序及其依赖,运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
  2. Docker允许开发中将应用、依赖、函数库、一起打包,形成可移植镜像
  3. 运行时利用沙箱机制形成隔离容,各个应用互不干扰
  4. 启动,移出都可以通过一行命令完成,方便快捷

二、Docker与虚拟机区别

  1. docker 硬盘占用一般为MB,虚拟机一般为GB2
  2. docker 是一个系统进程;虚拟机是在操作系统中的操作系统
  3. 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 容器与数据耦合带来的问题

  1. 不便于修改
  2. 数据不可复用:在容器内的修改对新创建的容器是不可复用的
  3. 升级维护困难:数据在容器内,升级或更换容器必然会导致数据丢失

5.3.2 数据卷介绍

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

在这里插入图片描述

5.3.3 数据卷操作命令

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

docker volume                                         
    create  创建一个volume               
    inspect  显示一个或多个volume的信息               
    ls  列出所有的volume               
    prune  删除未使用的volume               
    rm  删除一个或多个指定的volume

六、自定义镜像Dockerfile

镜像结构:

  1. 基础镜像(Baselmage): 包含基本的系统函数库,环境变量.文件系统
  2. 层(Layer) :在基础镜像基础上添加安装包,依赖,配置等,每次操作都形成新的一层
  3. 入口(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介绍

  1. Docker-compose 可以基于Compose文件快速部署分布式应用,而无需手动一个个创建和运行容器

  2. Docker-compose文件可以看做是将多个docker run 命令写到一个文件中,只是语法稍有差异

  3. Docker-compose是一个文本文件,通过指令定义集群中的每个容器如何运行

  4. 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 ......等等   重启

重点

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 554人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表