Docker常用命令

基础命令

docker --help    --查看帮助
docker --version     --查看版本
docker images    --查看本地images镜像缓存
docker rmi -f nginx:latest    --删除镜像文件

docker images参数介绍

REPOSITORY    存储库名称

Tag      镜像标签,不写版本号的话,默认下载latest镜像

IMAGE ID   镜像ID

CREATED    创建时间

SIZE   镜像大小

docker images -a    -- 同docker images
docker images -q    -- 只显示镜像ID
docker images --digests    -- 显示镜像摘要信息
docker images --no-trunc   -- 显示镜像完整信息
docker search + 镜像名     -- 搜索某个镜像,例如docker search mysql 就会在dockerHub中搜索mysql镜像
docker pull + 镜像名:版本号   --拉取对应版本的镜像,如果没填写版本号,则默认拉取最新的版本latest

容器管理

docker ps   --查看当前运行的docker容器
docker inspect 容器名    -- 查看当前容器的信息

docker run -it(i:保持容器一直运行,t:给容器一个伪终端),-d(后台运行,不直接进入容器),--name qudehu_tomcat(给容器起的名字) -p 8081:8080 (将tomcat内部的8080端口映射到外部的8081端口) tomcat:latest(启动的容器)

通过-it启动的容器有两个特点,一创建就会进入容器,退出容器就停止运行

通过-d创建的容器,退出容器不会停止运行

docker ps    -- 查看正在运行的容器
docker ps -a   --查看所有容器(包含运行和停止)
docker stop + 容器名    --关闭容器
docker start + 容器名    --启动容器
docker rm + 容器名    -- 删除已经停止的容器
docker inspect + 容器名    -- 查看容器信息
docker exec -it + 容器名 +bash    --进入容器 
docker exec -it + 容器名 sh      --对于没有bash的镜像而言

docker run运行原理

docker run nginx

简单描述:首先会从本地获取nginx镜像,如果本地没有,则会去阿里云镜像仓库去查找该镜像文件,如果阿里云镜像仓库也没有,则会报错

如果获取到了镜像文件,则会直接运行

镜像原理

Dockefile中封装了我们所需要的依赖信息,例如我们使用docker安装tomcat的时候,tomcat内部是维护了jdk,并配置了相关的环境变量,对于镜像而言,就是一种轻量级的、可执行的独立软件包,用来打包软件运行环境和基于运行环境的开发软件,他包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件,多个镜像文件构成了Union fs

镜像加载的原理

Linux文件系统由bootfs和rootfs两部分组成

    bootfs包含bootloader(引导加载程序)和kernel(内核)

    rootfs包含的是典型的linux中的/dev,proc,/etc等标准的目录和文件

不同的linux发行版bootfs基本一致,而rootfs不通,例如ubuntu和centos

docker镜像底层实际上是有多个不同的联合文件系统(Union fs)组成

最底层是bootfs,并使用宿主机的bootfs进行了复用

第二层是rootfs也可以称为base image

然后在往上叠加其他的镜像文件。而Union fs技术能够将不通的层整合成一个文件系统,为这些层提供了一个统一的视角,隐藏多层的存在,我们看来只是存在一个文件系统

所以当我们安装tomcat镜像的时候,是600多m是因为内部还包含了jdk和centos镜像,而centos镜像也复用了宿主机的bootfs,所以下载的只有rootfs,导致centos就会很小。

docker commit

主要作用:根据当前容器制作镜像

操作:

1,从docker hub中下载一个tomcat8镜像

2,运行tomcat8镜像文件,在tomcat下的webapps目录下新增qudehu文件夹并新增文件index.html

3,将当前容器内容制作为镜像文件

docker commit提交容器副本使之成为一个新的镜像

docker commit -m “提交的描述信息” -a "作者" 容器的名称或者ID 要创建的目标镜像名称:版本号

步骤:

-- 安装一个tomcat8
docker run -p 8081:8080 --name qudehu_tomcat  tomcat:8
docker exec -it qudehu_tomcat  bash
cd webapps 
mkdir qudehu 
touch index.html
echo "hello world" >>index.html

docker commit -m=“提交的描述信息” -a=“作者” 容器ID/容器ID 要创建的目标镜像名:[标签名]

1.根据当前容器作为模板制作为镜像文件
docker commit -m "add index info tomcat" -a "qudehu"  qudehu_tomcat qudehu-tomcat_index:1.0
2.在以当前自己制作的镜像文件运行
docker run -p 8082:8080   qudehu-tomcat_index:1.0

Docker数据卷

基本概念:数据卷就是宿主机上的一个文件或者目录,当容器目录和数据卷(宿主机)目录绑定,双方的修改会同步,一个数据卷可以被多个容器同时挂载

数据卷的作用:容器数据的持久化,外部机器和容器间接通讯,实现数据交换,使用-v命令

数据卷的添加方式:

  1. 直接命令的形式进行添加,docker run -it -v 宿主机绝对路径:容器内目录 镜像文件名称
  2. Dockerfile方式添加

使用nginx容器进行测试

1,创建挂载目录

mkdir -p /data/nginx/{conf,conf.d,html,logs}

2,启动docker容器

docker run --name qudehu_nginx -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html nginx

-v /data/nginx/html 虚拟机目录 --挂载 容器目录 /usr/share/nginx/html

上传一个 html 放入到  /data/nginx/html

nginx .conf文件和日志文件

docker run --name qudehu_nginx_1 -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/logs:/var/log/nginx  nginx 

\反斜杠  表示换行

/usr/share/nginx/html

/usr/share/nginx/conf

/usr/share/nginx/log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值