Docker基础用法
Docker简介:
Docker 是一个开源的应用容器引擎,可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker 的主要优势在于其高效的资源利用和快速的部署能力。与传统的虚拟机相比,Docker 容器所需的资源更少,启动速度更快,这使得在同一硬件上可以运行更多的服务,从而降低成本2。此外,Docker 还提供了镜像(Image)和容器(Container)的概念,镜像是容器的模板,通过镜像可以创建多个容器实例,类似于面向对象编程中的类和对象。官网
Docker镜像常用命令
docker pull 【镜像名称】从远端拉取镜像 例如 docker pull nginx(不指定版本默认拉取latest)
docker search 【镜像名称】搜索镜像
docker images 查看本地镜像
docker rmi 【镜像名称 || 镜像ID】删除本地镜像
Docker容器常用命令:
docker ps 查看当前容器的状态(只展示运行中的容器)docker ps -a 展示全部。
docker run --name nginx -d -p 80:80 nginx:latest (最简单的方式启动一个容器,下面会详细介绍)
docker start 【容器ID || 名称】 运行停止的容器(运行其中的进程)
docker restart 【容器ID || 名称】 重启容器 (通常是更改了配置文件需要重启生效)
docker stop 【容器ID || 名称】 停止容器
docker stats 容器id或name 查看容器实时的状态
docker rm 【容器ID || 名称】删除容器(如果容器运行中不让删除可以使用 docker rm -f nginx来强制删除)
docker logs 【容器ID || 名称】查看容器运行的日志 (-f 参数可以持续流式查看容器的最新日志输出)
docker exec -it 【容器ID || 名称】 /bin/bash 进入到容器内部并启动bash命令行(本人一般通过映射的方式在Linux中操作因为进入到容器内部有些命令无法使用,如图所示即为进入到容器内部)
Docker数据卷(Volume)
数据卷:他是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁(宿主机的文件系统通过数据卷和容器内部的目录联通) 解释:将docker内的东西创建数据卷同时docker会在宿主机目录中创建一个对应的真实目录 文件存放位置固定: /var/lib/docker/volumes。
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx 安装nginx同时创建数据卷(html如果写成/html则会将数据卷挂载到宿主机的/html目录中,如果:前面没有参数或者不加:则默认是匿名绑定)
html:/usr/share/nginx/html 具名绑定,将 数据卷的名称改为html,原先是一大串字符
/html:/usr/share/nginx/html bind mount绑定 将docker安装的软件中的/usr/share/nginx/html目录映射到主机的/html目录中,一切文件都以主机目录中的文件为主(如果文件名称相同,则会被替换成/html中的文件)
当然不光能映射目录也能直接映射文件,当需要映射多个东西时再写-v参数
在执行docker run 命令时,使用-v 数据卷:容器内目录 可以完成数据卷的挂载 当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷
docker inspect container_id 查看数据卷在主机的哪个位置
docker volume command 查看有关docker volume的命令
docker volume create 创建数据卷
docker volume ls 查看所有数据卷
docker volume rm 删除指定数据卷
docker volume inspect 查看某个数据卷的详情
docker volume prune 清除数据卷(删除本地没有使用的volume)
Docker实战
Nginx安装
docker run -d --name nginx nginx:latest 这个命令的目的是为了将nginx的配置文件copy出来为了接下来的映射。
#创建好准备映射的目录
mkdir -p /data/nginx/html
mkdir -p /data/nginx/logs
mkdir -p /data/nginx/conf
#将容器内部关于nginx的配置文件以及html目录copy到刚刚创建好的目录中,为下一步的映射做好准备
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf
docker cp nginx:/usr/share/nginx/html /data/nginx/html
#删除傀儡容器
docker rm -f nginx
// 创建nginx容器并将容器内部的文件映射到容器外部,这样我们对nginx.conf的更改就不需要进入到容器内部进行(数据卷的知识)
// 修改了配置文件记得使用docker restart nginx命令让其配置文件生效。
// 可以将下面的代码写到shell脚本中方便下次启动,下图展示内容即为使用shell脚本启动。
#!/bin/bash
docker run -p 80:80 --name nginx \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-d nginx:latest
接下来使用IP+port访问,若出现nginx字样即为安装成功!
总结:
对于Docker命令来说,越用越熟练与Linux命令一样,常用的命令就几个,剩下的需要了再及时查询即可。感谢你的阅读。