微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker的理论

引入docker

docker与普通虚拟机的区别:
普通虚拟机就是虚拟出一块硬件,然后运行整个操作系统,然后在该操作系统中安装软件等。
docker可以看做一个容器,直接运行里面的内容,内部没有内核,所以很轻便;同时各个容器互相不影响,每个容器内部有自己的文件系统;

在这里插入图片描述

docker的宿主机可以是物理机,也可是虚拟机!!!
docker由三部分组成:镜像、容器、仓库
镜像:可以看做最小的元素,例如安装的软件:MysqL、Tomcat、elasticsearch等;
容器:类似一个小的虚拟环境,来运行docker的镜像,为镜像的运行实例,可看作一个进程, 各个容器是互不影响的;
仓库:存放镜像的地方;

docker常用命令

启动docker服务 systemctl start docker
查看是否docker启动成功 systemctl status docker

查看本机上所有镜像 docker images
搜索镜像 docker search tomcat
拉取镜像 docker pull tomcat:8
删除镜像 docker rmi -f 镜像id
删除全部镜像 docker rmi -f $(docker images -aq)

查看正在运行的容器 docker ps
查看全部容器信息 docker ps -a
启动容器 docker start 容器ID
关闭容器 docker stop 容器ID
新建容器并启动 docker run 镜像id
删除指定容器 docker rm 容器id

docker run [可选参数] image | docker container run [可选参数] image
#参书说明
–name=“Name” 容器名字 tomcat01 tomcat02 用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080(宿主机):8080(容器)
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P(大写) 随机指定端口

创建、启动容器并进入容器 docker run -it centos /bin/bash
从容器退回到宿主机 exit

后台启动容器 docker run -d 容器名
docker run -d centos
进入后台 docker exec -it 容器id /bin/bash

从容器内复制到宿主机
docker cp 容器id:容器内路径 主机目的路径
docker cp 容器id:/test.java /

日志查看

命令格式:docker logs [OPTIONS] CONTAINER
Options:
–details 显示更多的信息
-f, --follow 跟踪实时日志
–since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
–tail string 从日志末尾显示多少行日志, 认是all
-t, --timestamps 显示时间戳
–until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

查看指定时间后的日志,只显示最后100行
docker logs -f -t --since=“2018-02-08” --tail=100 CONTAINER_ID
查看最近30分钟的日志
docker logs -f -t --since 30m CONTAINER_ID
查看某时间段日志
docker logs -f --since=“2021-06-14” --until=“2021-06-16” CONTAINER_ID

容器卷 前辈

容器卷:类似U盘,可以实现宿主机与容器之间的数据共享
实操一下:

  • 宿主机创建一个目录
  • 以宿主机的目录位置启动一个容器,作为容器卷
  • 【docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名】
  • 进入容器,在对应目录下操作该目录

cd /root
mkdir test
docker run -it -v /root/test:/test centos
进入容器后操作:
[root@fe9cd11e2d07 /]# ls
[root@fe9cd11e2d07 /]# cd test
[root@fe9cd11e2d07 test]# touch aa.txt
[root@fe9cd11e2d07 test]# vi aa.txt
内容如下: update by container :aaaaaa
随后去宿主机中查看可以看到/root/test目录下的aa.txt文件有了容器输入的内容

此时将容器停止 docker stop 容器id
继续编辑宿主机的/root/test目录下的aa.txt文件,编辑完成后,再次启动容器,进入容器可查看test目录下的文件也同样修改了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐