docker常用命令
帮助命令
docker version
docker info
docker --help
镜像命令
#列出本地镜像
docker images [OPTIONS]
-a:列出本地所有的镜像(包含中间映像层)
-q:只显示镜像id
--digests:显示镜像的摘要信息
--no-trunc:显示完整的镜像信息
#去dockerHub(https://hub.docker.com/)搜索镜像
docker search [OPTIONS] {imageName}
#拉取镜像
docker pull {imageName}:{tag}
#删除一个镜像
docker rmi -f {imageName}
#删除多个镜像
docker rmi -f {imageName1} {imageName2}
#删除全部镜像
docker rmi -f $(docker images -qa)
docker build -f {dockerFilePath} -t {newImageName}:{tag}
docker commit -m="Comment" -a="autherName" {containerId} {namespace}/{targetImageName}:{tag}
docker push
#查看镜像历史
docker history {imageName}
容器命令
#新建并启动容器
docker run [OPTIONS] {imageName或imageId} [COMMAND] [ARG...]
--name:别名
--i:以交互模式运行容器,通常与-t同时使用
--t:为容器重新分配一个伪输入终端,通常与-i同时使用
-d:后台运行容器,并返回容器id
-P:随机端口映射
-p:指定端口映射
docker run --it -p {主机端口}:{容器端口} {imageName或imageId}
启动docker中的tomcat后,访问报错404,原因是tomcat中默认的webapps目录是空的,所需文件在webapps.dist目录下,需要重命名目录
#创建容器卷
docker run -it -v {localVolunmeDirectory}:{containerVolunmeDirectory} {imageName}
#创建只读的容器卷(只有宿主机能正常读写,容器只能读)
docker run -it -v {localVolunmeDirectory}:{containerVolunmeDirectory}:ro {imageName}
#列出当前所有正在运行的容器
docker ps [OPTIONS]
-a:列出当前所有正在运行以及历史上运行过的容器
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器id
--no-trunc:不截断输出
#停止容器方式退出容器
exit
#不停止容器方式退出
ctrl+p+q
#启动容器
docker start {containerId或containerName}
#重启容器
docker restart {containerId或containerName}
#正常停止容器
docker stop {containerId或containerName}
#强制关闭容器
docker kill {containerId或containerName}
#删除已停止的容器
docker rm {containerId或containerName}
#强制删除容器,即使容器正在运行
docker rm -f {containerId或containerName}
#一次性删除多个容器
docker rm -f $(docker ps -aq)
docker ps -aq | xargs docker rm
#查看容器的日志
docker logs [OPTIONS] {containerId或containerName}
-t:显示时间戳
-n:最后n行
#查看容器内运行的进程
docker top {containerId或containerName}
#查看容器内的细节
docker inspect {containerId或containerName}
#在宿主机中执行容器的命令
docker exec -it {containerId或containerName} {bashShell}
#进入容器,再执行命令,有时候执行该命令会卡住,不推荐使用
docker attach {containerId或containerName}
#拷贝容器内的文件到宿主机
docker cp {containerId或containerName}:{containerPath} {localPath}
DockerFile保留字指令
FORM:基础镜像
MAINTAINER:镜像维护者的姓名和邮箱
RUN:容器构建时需要运行的命令
EXPOSE:容器对外暴露的端口
WORKDIR:指定创建容器后,终端默认进入的工作目录
ENV:构建镜像过程中设置环境变量
ADD:将宿主机目录下的文件拷贝进镜像且自动处理url和解压tar压缩包
COPY:将宿主机目录下的文件拷贝进镜像,COPY src dest,COPY ["src", "dest"]
VOLUME:容器数据卷,用于保存数据和持久化
CMD:指定一个容器启动时要运行的命令,DockerFile中可以有多个CMD命令,但只有最后一个生效,CMD会被docker run之后的参数替换
ENTRYPOINT:指定一个容器启动时要运行的命令,docker run之后的命令会追加,而不是替换
ONBUILD:假设son镜像继承自father镜像且father镜像的DockerFile中有ONBUILD {bashShell},当构建son镜像的DockerFile时,会执行{bashShell}