整理平时经常用到的docker命令。
1、管理型命令
1.1 docker volume
在宿主机创建数据卷,用于挂载到docker容器内部,可实现数据和容器相分离。相关命令及执行结果如下:
# 创建一个数据卷
docker volume create volumeName
# 查看现有数据卷
docker volume ls
# 查看数据卷详细信息
docker volume inspect volumeName
# 带提示删除所有未使用数据卷
docker volume prune
# 强制删除所有未使用数据卷 无提示
docker volume prune -f
# 删除一个数据卷
docker volume rm volumeName
2、执行型命令
2.1 docker search
搜索镜像命令
# 使用关键字java搜索镜像
docker search java
2.2 docker images
查看本地镜像
docker images
2.3 docker pull
拉取远端镜像到本地
指令格式:docker pull [OPTIONS] imageName[:tagVersionName]
# 拉取alpine的latest镜像到本地
docker pull alpine
# 拉取3.11.5版本alpine镜像到本地
docker pull alpine:3.11.5
2.4 docker run
使用镜像创建容器并运行
指令格式:docker run [OPTIONS] imageName [COMMAND] [ARG...]
# -d 后台运行
# -p 8080:80 宿主机的8080端口映射到docker内部的80端口
# --name docker-nginx 启动后的容器名称为docker-nginx
docker run -d -p 8080:80 --name docker-nginx nginx
2.5 docker ps
查看本地已创建的容器
指令格式:docker ps [OPTIONS]
# 查看运行中的容器
docker ps
# 查看所有容器 包括正在运行和已经停止运行的
docker ps -a
# 查看所有容器中名字含'docker'的容器
docker ps -af name=docker
2.6 docker kill / stop
有kill和stop两个命令可用于停止一个或多个运行中的容器
kill指令格式:docker kill [OPTIONS] imageName [imageName1,imageName2,imageName3...]
stop指令格式: docker stop [OPTIONS] imageName [imageName1,imageName2,imageName3...]
# 通过id直接关闭容器
# docker kill a0fbf4519279
# 通过容器名称直接关闭容器
docker kill docker-nginx
# 通过id直接容器 默认等待十秒 超时强制关闭
# docker stop a0fbf4519279
# 通过容器名称关闭容器 默认等待十秒 超时强制关闭 等价于 docker stop -t=10 docker-nginx
docker stop docker-nginx
2.7 docker start / restart
有start和restart两个命令可用于启动或重启一个或多个容器
start命令格式:docker start [OPTIONS] imageName [imageName1,imageName2,imageName3...]
restart命令格式:docker restart [OPTIONS] imageName [imageName1,imageName2,imageName3...]
# 启动容器可通过容器id或者容器名称
# 通过容器名称启动容器,如果已启动则忽略
docker start docker-nginx
# 通过容器名称重新启动容器,如果未启动则直接启动,如果已启动则关闭再启动
docker restart docker-nginx
# 重启容器,如果容器正在运行最多等待5秒用于停止容器,不加-t参数默认最多等待10秒
docker restart -t 5 docker-nginx
2.8 docker cp
从宿主机和docker容器之间复制文件,不论docker容器是否已经运行,都可以执行复制操作
从宿主机向docker内部复制文件:docker cp [OPTIONS] <宿主机路径> containerName:<docker内文件或者文件夹路径>
从docker内部向宿主机复制文件:docker cp [OPTIONS] containerName:<docker内文件或者文件夹路径> <宿主机路径>
# 将nginx容器内部的/etc/nginx文件夹复制到本机当前运行目录
docker cp nginx:/etc/nginx ./
# 将nginx容器内部的/etc/nginx/nginx.conf文件复制到本机当前运行目录
docker cp nginx:/etc/nginx/nginx.conf ./
# 将本机当前运行目录下的的test文件复制到nginx容器内部的/etc/nginx/目录下
docker cp ./test nginx:/etc/nginx/
....待完善....