1、常用命令
#下拉镜像
docker pull MMM
#将MMM镜像加载到新容器,执行YYY命令,将该容器命名为NNN
#(-it 标准I/O支持)(-d 后台运行)
#(-p p1:p2 映射本地端口p1到容器端口p2)(-P 为随机映射高端口)(udp端口要加/udp)
docker run –-name NNN MMM YYY
#操作容器命令(移除时必须是停止状态)
docker start/stop/restart/rm XX_ID
#在容器内执行YYY命令
docker exec XX_ID YYY
#切换到后台容器标准IO
docker exec –it XX_ID /bin/bash
#删除所有停止状态容器
docker container prune
#显示当前运行中容器信息
docker ps
#显示所有容器信息
docker ps –a
#查看容器内部进程
docker top XX_ID
#查看容器内部标准输出
docker logs XX_ID
#查看容器端口映射
docker port XX_ID
#查看容器底层信息
docker inspect XX_ID
#导出容器
docker export XX_ID > XX.tar
#导入镜像命名为TAG
cat XX.tar | docker import - TAG
#查看当前镜像
docker images
#查找镜像
docker search MMM
#删除镜像
docker image rm MMM
docker rmi MMM
#将容器提交为镜像
docker commit –m="description" –a="author" XX_ID MMM
#为镜像添加新的标签
docker tag MM_ID MM
#创建新的docker网络
docker network create –d net_mod net_name
#(--network net_name 创建容器并连接到docker网络)
#(/etc/docker/daemon.json 或者 –-dns=8.8.8.8 指定容器的DNS地址)
#(--hostname=HOSTNAME 指定容器的主机名)
#登陆docker hub
docker login
#注销登陆
docker logout
#搜索镜像
docker search MM
#拉取镜像
docker pull MM
#推送镜像
docker push MM
2、Dockerfile配置相关
#根据配置命令构建镜像文件,其中.为上下文路径
#(即docker进程生成镜像时用到的默认本机路径,会进行打包)构建镜像MMM
docker build –f path_Of_Dockerfile –t MMM .
要构建新的镜像,必须先在本地有一个Dockerfile配置命令文件:
RUN <命令> 执行命令(build时执行)
FROM <基于的镜像> 基于某镜像构建
COPY A B 复制指令,从上下文路径复制文件A到镜像内路径B,可用通配符
CMD <命令> 执行命令(run时执行)
ENV <KEY> <VALUE> 设置环境变量(run过程)
ARG <KEY> <VALUE> 设置环境变量(build过程)
VOLUME <路径> 定义匿名数据卷
EXPOSE <端口> 声明端口
3、数据卷
数据卷就是在宿主中可以在容器之间进行共享和重用的一系列和文件和文件夹,通过docker run -v命令可以将数据卷挂载到对应的容器目录空间,进行文件读取——容器之间共享与重用数据、传递数据将变得高效方便,解耦应用和数据,修改是同步且实时的,当且仅当没有容器使用时数据卷才会销毁(可以创建用于数据卷容器)
#在容器中创建数据卷,宿主机路径为/var/lib/docker/volumes
-v XXX_PATH
#查看某容器XXX数据卷宿主机地址(可直接访问)
docker inspect XXX | grep /var/lib/docker/volumes
#将宿主机文件或目录AAA_PATH直接挂载到容器目录XXX_PATH上,也可以一次性挂载多个
–v AAA_PATH:XXX_PATH
#挂载XXX容器中的数据卷
--volumes-from XXX
#备份XXX容器中的数据卷XXX_PATH到宿主机地址BACK_PATH(--rm表示执行完即注销)
docker run –i –t –-rm –-volumes-from XXX –v BACK_PATH:/backup MMM tar cvf backup/data.tar XXX_PATH
#手动创建数据卷VVV(储存目录为/var/lib/docker/volumes/VVV/_data,可以直接在宿主机备份)
docker volume create VVV
#展示数据卷
docker volume ls
#-v VVV:PATH 使用手动创建的数据卷