# 1.查看本机中所有镜像
??? docker images? [options]? --------------------------?? ?列出本地所有镜像
?????? 默认??????? 列出所有镜像信息
?? ??? ?-a?? ??? ??? ?列出所有镜像(包含中间映像层)
? ?? ?? -q?? ??? ??? ?只显示镜像id
# 2.搜索镜像
?? ?docker search [options] 镜像名?? ?-------------------?? ?去dockerhub上查询当前镜像
?? ??? ?-s 指定值?? ??? ?列出收藏数不少于指定值的镜像
? ?? ?? --no-trunc?? ?? 显示完整的镜像信息
# 3.从仓库下载镜像
??? docker pull 镜像名:版本号(Tag)? ----------------- 从远程仓库下载镜像到本地
# 4.删除镜像
??? docker image rm [options] 镜像名:Tag | 镜像ID --------------- 删除镜像
??????? 默认:删除镜像,注意镜像之上没有正在运行的容器实例才能删除
??????? -f : 强制删除镜像(不安全)
???
?? docker rmi [options] 镜像名:Tag | 镜像ID? --------------- 简化写法
????????默认:删除镜像,注意镜像之上没有正在运行的容器实例才能删除
?? ??? ?-f?? ??? ?强制删除
# 5.导入镜像
? docker load -i tar类型的镜像文件名称? --------------- 将打包的镜像导入本地docker仓库
# 1.运行容器
??? docker run [options] 镜像名:Tag | 镜像ID ?? ---------------------? 基于镜像新建并启动容器
??? ???????? 默认???????????????????? 默认启动一个容器(名字随机)
???????????? --name ?? ??? ??? ???? 为容器起一个名字
??????????? -d?? ??? ??? ??? ??? ??? ?? 启动守护式容器(在后台启动容器)
??? ??????? -p?? ??? ??? ??? ??? ??? ?? 宿主机与容器端口映射(宿主机端口:容器监听端口 )
?? 例:docker run -d(保持后台运行) -p 8080(宿主机端口):8080(容器监听端口) --name tomcat01(容器名称) tomcat(指定镜像)
# 2.查看运行的容器
?? ?docker ps? [options]? --------------------------?? ?列出所有正在运行的容器
????? 默认 ? ? ?? 列出所有运行中的容器信息 ????
?? ?? -a?? ??? ???? 列出正在运行的和历史运行过(且没被删除)的容器(所有状态)
?? ?? -q?? ??? ??? ?静默模式,只显示运行中的容器编号
# 3.停止 |关闭 |重启 容器(没被删除)
?? ?docker start?? 容器名字或者容器id? --------------- 开启容器
?? ?docker restart 容器名或者容器id??? --------------- 重启容器
?? ?docker stop? 容器名或者容器id ? ------------------ 正常停止容器运行
?? ?docker kill? 容器名或者容器id???? ------------------ 立即停止容器运行
# 4.删除容器(不会出现在历史里)
??? docker rm 容器id和容器名?? ----------------------??? 删除停止运行的容器
?? ?docker rm -f 容器id和容器名??? ?--------------------------??? 强制删除容器
?? ?docker rm -f $(docker ps -aq)?? --------------------------??? 强制删除所有容器(嵌套查询$)
# 5.查看容器内的进程
?? ?docker top 容器id或者容器名 ------------------ 查看容器内的进程列表
# 6.查看查看容器内部细节
??? docker inspect 容器id | 容器名称 ?? ------------------? 查看容器内部细节
# 7.查看容器的运行日志
?? ?docker logs [OPTIONS] 容器id或容器名?? ?------------------ 查看容器日志
?????? -t?? ??? ??? ? 加入时间戳
???? ? -f?? ??? ??? ? 跟随最新的日志打印(实时)
?????? --tail N(n)??? 显示日志最后n条
# 8.进入容器内部环境
?? ?docker exec [options] 容器id ------------------ 进入容器内交互执行命令
?? ??? ?-i?? ??? ?以交互模式运行容器,通常与-t一起使用
? ? ? ? -t?? ??? ?分配一个伪终端??? shell窗口?? bash
? 例: docker exec -it 容器id|容器名称 bash ===> 执行exit退出
# 9.容器和宿主机之间复制文件
??? docker cp 文件|目录名 容器id(或名称):/容器资源路径? ------------ 将宿主机复制到容器内部
?? ?docker cp 容器id:容器内资源路径 宿主机目录路径? -------------- 将容器内资源拷贝到主机上
# 10.数据卷(volum)实现与宿主机共享目录文件(启动时指定)
?? ?docker run -v 宿主机的路径|任意别名:/容器内的路径 镜像名:Tag
#1.自定义数据卷目录
docker run -d -p 8081:8080 --name tomcat02 -v /root/apps:/usr/local/tomcat/webapps tomcat
#注意:
# 1.宿主机路径必须是绝对路径,宿主机目录在创建启动容器时会覆盖容器内相应目录的内容。若宿主机目录为空,则会将容器内目录拷贝到宿主机中。
# 2.宿主机与容器共享文件/目录,容器启动后任何一方改变目录内容都会随之变化
# 3.容器被删除/停止时,不会影响宿主机共享文件内容,因此可以用来备份容器(一次备份,处处可用)
#2.自动数据卷目录
docker run -d -p 8081:8080 --name tomcat02 -v aa:/usr/local/tomcat/webapps tomcat
#注意:
# 1.aa代表一个数据卷的别名,若该别名的数据卷存在则会初始化容器共享目录;
# 2.若该别名的数据卷不存在,则会在docker运行容器时自动在宿主机中创建一个相应的空目录,并将容器目录文件复制到宿主机中
?# 11.打包镜像
?? ??? ?docker save 镜像名:Tag? -o? 文件名称.tar
# 12.载入镜像
?? ??? ?docker load -i?? 文件名称.tar
# 13.容器打包成新的镜像
?? ??? docker commit -m? "描述信息"? -a? "作者信息"? (容器id或者名称)打包的镜像名称:标签