当前位置:   article > 正文

Docker_一个容器一个镜像

一个容器一个镜像

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

(1)可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统

(2)运行时利用沙箱机制形成隔离容器,各个应用互不干扰

(3)启动、移除都可以通过一行命令完成,方便快捷

2. Docker和虚拟机的差异

(1)docker是一个系统进程;虚拟机是在操作系统中的操作系统

(2)docker体积小、启动速度快、性能好;虚拟机体积大,启动速度慢,性能一般

3. Docker架构

(1)镜像

        将应用程序及其依赖,环境,配置打包在一起

(2)容器

        镜像运行起来就是容器,一个镜像可以运行多个容器

(3)Docker结构

        服务端:接受命令或远程请求,操作镜像或容器

        客户端:发送命令或者请求到Docker服务端

(4)DockerHub

        一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry

4. Docker基本操作

(1)镜像操作

镜像相关命令:

  • 镜像名称一般分两部分组成:[repository]:[tag]。
  • 在没有指定tag时,默认是latest,代表最新版本的镜像

镜像操作命令:

  • docker images        查看镜像
  • docker rmi        删除镜像
  • docker pull        从服务拉取镜像
  • docker push        推送镜像到服务
  • docker push        推送镜像到服务
  • docker push        推送镜像到服务

(2)容器操作 

docker run        运行容器

docker run命令的常见参数

  • --name:指定容器名称
  • -p:指定端口映射
  • -d:让容器后台运行 

② 查看容器日志的命令: 

  • docker logs 添加
  • -f 参数可以持续查看日志 

③ 查看容器状态:

  • docker ps 
  • 添加-a参数查看所有状态的容器

删除容器

  • docker rm
  • 不能删除运行中的容器,除非添加 -f 参数 

⑤ 进入容器:

  • 命令是docker exec -it [容器名] [要执行的命令]
  • exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的 

⑥ 其他命令:

  • docker pause        暂停容器的运行
  • docker unpause        继续容器的运行
  • docker stop         停止容器的运行
  • docker start        开始运行容器

 (3)数据卷命令

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

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

  • docker volume [COMMAND]

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

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

docker run的命令中通过 -v 参数挂载文件或目录到容器中:

  • -v volume名称:容器内目录
  • -v 宿主机文件:容器内文件
  • -v 宿主机目录:容器内目录

 5. DockerFile

(1)Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

指令

说明

示例

FROM

指定基础镜像

FROM centos:6

ENV

设置环境变量,可在后面指令使用

ENV key value

COPY

拷贝本地文件到镜像的指定目录

COPY ./mysql-5.7.rpm /tmp

RUN

执行Linux的shell命令,一般是安装过程的命令

RUN yum install gcc

EXPOSE

指定容器运行时监听的端口,是给镜像使用者看的

EXPOSE 8080

ENTRYPOINT

镜像中应用的启动命令,容器运行时调用

ENTRYPOINT java -jar xx.jar

 (2)Dockerfile的第一行必须是FROM,从一个基础镜像来构建。

(3)基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine。

6. DockerCompose 

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!。

Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 

 利用 docker-compose up -d 来部署

  1. version: "3.8"
  2. services:
  3.   mysql:
  4.     image: mysql:5.7.25
  5. environment:
  6. MYSQL_ROOT_PASSWORD: 123
  7.     volumes:
  8.      - "/tmp/mysql/data:/var/lib/mysql"
  9.      -  "/tmp/mysql/conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf"
  10.   web:
  11.     build: .
  12.     ports:
  13.      - "8080:8080"

7. 镜像仓库

(1)推送本地镜像到仓库前都必须重命名(docker tag)镜像,以镜像仓库地址为前缀

(2)镜像仓库推送前需要把仓库地址配置到docker服务的daemon.json文件中,被docker信任

(3)推送使用docker push命令

(4)拉取使用docker pull命令

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/502356
推荐阅读
相关标签
  

闽ICP备14008679号