docker常用命令
官方地址:
https://docs.docker.com/engine/reference/commandline/cli/
生命周期相关
创建容器,但不运行
docker create -it --name <container-name> <image-name>
运行容器
docker run -d -p 8089:8089 --name <container-name> <image-name>
--name=“容器新名字”:为容器指定一个名称
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器分配一个伪输入终端tty,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射
在正在运行的容器中打开交互模式终端
docker exec -it <container-id> /bin/bash
停止容器
docker stop <container-id>
强制停止容器
docker kill <container-id>
启动属于停止状态的容器
docker start <container-id>
重启容器
docker restart <container-id>
删除容器
docker rm <container-id>
查看日志
docker logs -f -t --since="2020-08-25" --tail=10 <container-id>
-f : 查看实时日志
-t : 查看日志产生的日期
--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志
--tail=10 : 查看最后的10条日志
查看容器的端口映射
docker port <container-id>
在宿主机和容器之间拷贝文件/目录
docker cp <container-id>:<src_path> <dest_path>
docker cp <src_path> <container-id>:<dest_path>
获取Docker容器、镜像、网络、卷等的详细信息
docker inspect <容器/镜像/网络/卷名称或ID>
更新一个或多个容器的配置
docker update --cpu-shares 512 -m 300M <container-id> <container-id>
显示正在运行的容器
docker container ps
docker container top <container-id> [ps.args] # 后边可以跟ps命令的参数
docker container stats <container-id>
注意:容器启动时如果没有特别指定内存 limit,stats 命令会显示 host 的内存总量,但这并不意味着每个 container 都能使用到这么多的内存。
镜像相关
从Docker Hub上搜索镜像
docker search
从Docker Hub上下载镜像
docker pull
列出本地的镜像
docker images
删除镜像
docker rmi <image-id> # -f 强制删除
查看镜像的历史
docker history
根据已有镜像创建一个新的标签
docker tag <images_id> <new_image_name>:<tag>
导出镜像到本地文件:
docker save -o ubuntu.tar ubuntu
导入本地镜像:
docker load < ubuntu.tar
docker load --input ubuntu.tar
构建镜像:
文件名必须为:Dockerfile
docker build -t phoenix_cloud:2.1.1 . # 注意:命令末尾必须有个点号“.”
文件名不是Dockerfile,则需要-f指定dockerfile:
docker build -f dockerfile_web -t phoenix_cloud:2.1.1 .
根据一个容器创建一个新的镜像
docker commit <container-id>
命令组合使用
nginx热更新:
通常都会选择把nginx的配置文件放在docker宿主机上,然后在宿主机完成配置的修改后reload容器中的nginx就好了
docker exec -i [nginx容器名/id] nginx -s reload
执行完命令后删除容器:
docker run --rm
过滤出状态为exited的容器的ID:
docker ps -qf status=exited
过滤并删除容器:
docker rm `docker ps -qf status=exited`
查看已下载的Docker镜像latest具体版本:
docker image inspect [镜像名称]:latest|grep -i version
删除所有none镜像:
docker rmi `docker images | grep '<none>' | awk '{print $3}'`