Docker常用命令总结

199 阅读4分钟

Docker常用命令总结

#docker服务自动重启设置

systemctl enable docker.service

#docker容器自动启动设置

docs.docker.com/config/cont…

# To configure the restart policy for a container, use the --restart flag when using the docker run command. The value of the --restart flag can be any of the following:

#  Flag Description

# no    - Do not automatically restart the container. (the default)

# on-failure    - Restart the container if it exits due to an error, which manifests as a non-zero exit code.

# always    - Always restart the container if it stops. If it is manually stopped, it is restarted only when Docker daemon restarts or the container itself is manually restarted. (See the second bullet listed in restart policy details)

# unless-stopped    - Similar to always, except that when the container is stopped (manually or otherwise), it is not restarted even after Docker daemon restarts.

#仓库相关

 docker search  docker search KEY_WORD              # 查找镜像

 docker pull  docker pull REGISTRY:$TAG           # 获取镜像

 docker push  docker push IMAGE_NAME:$IMAGE_TAG   # 推送镜像到仓库,需要先登录

 docker login  docker login REGISTRY_URL           # 登录仓库

 docker logout  docker logout REGISTRY_URL          # 退出仓库

$ docker info                          # 显示Docker详细的系统信息,可查看仓库地址

$ docker --help                        # 显示Docker的帮助信息

# 容器相关

 docker attach  docker attach CONTAINER_ID  # 启动一个已存在的docker容器

$ docker exec                  #进入Docker容器

    $ sudo docker ps

    $ sudo docker exec -it 775c7c9ee1e1 /bin/bash

$ docker-compose exec <containtername/ID> bash

 docker stop  docker stop CONTAINER_ID    # 停止docker容器

 docker start  docker start CONTAINER_ID   # 启动docker容器

 docker restart  docker restart CONTAINER_ID # 重启docker容器

 docker kill  docker kill CONTAINER_ID    # 强制关闭docker容器

 docker pause  docker pause CONTAINER_ID   # 暂停容器

 docker unpause  docker unpause CONTAINER_ID # 恢复暂停的容器

 docker rename  docker rename CONTAINER_ID  # 重新命名docker容器

 docker rm  docker rm CONTAINER_ID      # 删除容器

 docker logs  docker logs CONTAINER_ID    # 查看docker容器运行日志,确保正常运行

 docker inspect  docker inspect CONTAINER_ID # 查看container的容器属性,比如ip等等

 docker port  docker port CONTAINER_ID    # 查看container的端口映射

 docker top  docker top CONTAINER_ID     # 查看容器中正在运行的进程

 docker commit  docker commit CONTAINER_ID NEW_IMAGE_NAME:NEW\_IMAGE\_NAME:NEW_IMAGE_TAG # 将容器保存为镜像

$ docker ps -a                 # 查看所有容器

$ docker stats                 # 查看容器的资源使用情况

$ docker inspect               # 来查看该容器的详细信息。

# 镜像相关

$ docker images                      # 查看本地镜像

 docker rmi  docker rmi IMAGE_ID               # 删除本地镜像

 docker inspect  docker inspect IMAGE_ID           # 查看镜像详情

 docker save  docker save IMAGE_ID > 文件路径   # 保存镜像为离线文件

 docker save o 文件路径  docker save -o 文件路径 IMAGE_ID  # 保存镜像为离线文件

$ docker load < 文件路径             # 加载文件为docker镜像

$ docker load -i 文件路径            # 加载文件为docker镜像

 docker tag  docker tag IMAGE_ID NEW_IMAGE_NAME:NEW\_IMAGE\_NAME:NEW_IMAGE_TAG  # 修改镜像TAG

 docker run 参数  docker run 参数 IMAGE_ID $CMD     # 运行一个镜像

 docker history  docker history IMAGE_ID           # 显示镜像每层的变更内容

# run命令相关

# -d,后台运行容器, 并返回容器ID;不指定时, 启动后开始打印日志, Ctrl+C退出命令同时会关闭容器

# -i,以交互模式运行容器, 通常与-t同时使用

# -t,为容器重新分配一个伪输入终端, 通常与-i同时使用

# --name container_name,设置容器名称, 不指定时随机生成

# -h container_hostname,设置容器的主机名, 默认随机生成

# --dns 8.8.8.8,指定容器使用的DNS服务器, 默认和宿主机一致

# -e docker_host=172.17.0.1,设置环境变量

# --cpuset="0-2" or --cpuset="0,1,2",绑定容器到指定CPU运行

# -m 100M,设置容器使用内存最大值

# --net bridge,指定容器的网络连接类型, 支持bridge/host/none/container四种类型

# --ip 172.18.0.13,为容器指定固定IP(需要使用自定义网络none)

# --expose 8081 --expose 8082,开放一个端口或一组端口,会覆盖镜像设置中开放的端口

# -p [宿主机端口]:[容器内端口],宿主机到容器的端口映射,可指定宿主机的要监听的IP,默认为0.0.0.0

# -P,注意是大写的, 宿主机随机指定一组可用的端口映射容器expose的所有端口

# -v [宿主机目录路径]:[容器内目录路径],挂载宿主机的指定目录(或文件)到容器内的指定目录(或文件)

# --add-host [主机名]:[IP],为容器hosts文件追加host, 默认会在hosts文件最后追加[主机名]:[容器IP]

# --volumes-from [其他容器名],将其他容器的数据卷添加到此容器

# --link [其他容器名]:[在该容器中的别名],添加链接到另一个容器,在本容器hosts文件中加入关联容器的记录,效果类似于--add-host

docker run -d -p 27017-27019:27017-27019 --name mongodb mongo:latest

###  Applicaton #######

cd /usr/local/teamops/target/

sudo java -Xms256m -Xmx512m -Dhttp.auth.preference=basic -Dfile.encoding=windows-1252 -jar /usr/local/teamops/target/teamops-0.0.1-SNAPSHOT.jar --spring.profile.active=dev

查看docker container内进程信息及与宿主机上进程的映射关系

docker ps 找到对应的容器 在这里插入图片描述

2、根据container id 找到容器在宿主机上映射后的进程信息

docker top 8c900d3fe375(容器id)

就会得到类似下面的信息,其中PID是容器内进程在宿主机上的pid,ppid是容器内进程在宿主机上的父进程pid