基础命令
# 启动docker
systemctl start docker.service
# 关闭docker
systemctl stop docker.service
# 重启docker
systemctl restart docker.service
# docker设置随服务启动而自启动
systemctl enable docker
# 查看docker运行状态(如果是在运行中输入命令后会看到绿色的active (running) )
systemctl status docker.service
# 查看docker 版本号信息
docker version
# 查看docker 详细信息
docker info
# docker 帮助命令
docker --help
镜像命令
# 查看服务器中docker镜像列表
docker images
docker image ls
# 搜索镜像
docker search
docker search --filter STARS=9000 --filter is-automated=false --filter is-official=true mysql : 搜索收藏星大于9000,不自动构建,是官方镜像的mysql镜像
docker search --no-trunc mysql : 禁止截断输出,显示完整的镜像描述
docker search --automated redis : 只列出 automated build类型的镜像
docker search redis --limit 5 : 默认显示25条
docker search --format "{{.Name}} | {{.Description}} | {{.IsOfficial}} | {{.IsAutomated}} | {{.StarCount}}" nginx : 使用模板格式化显示输出
# 拉取镜像(不加tag版本号的话默认拉取最新版本latest)
docker pull mysql
docker pull mysql:5.7
# 删除当前未被容器使用的镜像
docker rmi 镜像名/镜像ID
docker image rm 镜像名/镜像ID
# 删除多个镜像
docker rmi 镜像名1/镜像ID 镜像名2/镜像ID 镜像名3/镜像ID
docker image rm 镜像名1/镜像ID 镜像名2/镜像ID 镜像名3/镜像ID
# 删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
docker image prune -a
# 保存镜像(导出与导入,[]表示可以省略)
#导出
docker [imgage] save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
docker [imgage] save nginx:latest -o nginx.image
#导入
docker [imgage] load -i 镜像保存文件位置
docker [imgage] load -i nginx.image
# 查看镜像详细信息
docker image inspect nginx:latest
# 镜像tag修改
# dockerfile构建时修改name和tag
docker image build -t niuzheng131400/hello:1.0
# 镜像修改name和tag
docker image tag 镜像名/镜像ID niuzheng131400/hello:1.0
# 登录 && 推送(名字要和dockerhub的一致,如是niuzheng131400)
docker login
docker pull niuzheng131400/hello:1.1
容器命令
# 查看正在运行容器列表([]表示可以省略)
docker [container] ps
docker container ls
# 查看所有容器 (运行和退出停止的,[]表示可以省略)
docker [container] ps -a
docker container ls -a
# 运行容器、停止容器、重启、统计
-it (表示与容器进行交互式启动)
-d (表示可后台运行容器,守护式运行)
--name(给要运行的容器起的名字)
/bin/bash(交互路径)
--rm (退出即删除)
--port (宿主机端口:容器端口)
--restart=always(容器随docker服务启动而自动启动)
-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 (挂载一个或多个目录)
docker [container] run -it -d --name 要取的别名 --port 80:80 --restart=always -v /var/lib/redis/data/:/data 镜像名:Tag /bin/bash
# 不想删容器,又想让这个容器设置开机自启动,那么我们修改其启动配置即可!
docker [container] update --restart=always 容器Id/容器名
# 停止容器
docker [container] stop 名称/容器ID
# 重启
docker [container] restart 名称/容器ID
# 统计
docker [container] stats 名称/容器ID
# 删除一个或者多个停止的容器
docker rm 容器名/容器ID
# 强制一个删除
docker rm - f 容器名/容器ID
# 强制删除多个
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
# 删除全部停止的容器
docker rm $(docker ps -aq)
docker system prune -f
# 强制删除全部容器
docker rm -f $(docker ps -aq)
# kill 容器
docker kill 容器名/容器ID
# 查看容器进程
docker top 容器名/容器ID
# 查看容器日志
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
# 交互式运行或者进入容器
docker [container] run -it 容器名/容器ID sh
docker exec -it 容器名/容器ID sh
docker attach 容器名/容器ID
# 复制
docker cp 容器ID/名称:文件路径 要拷贝到外部的路径 | 要拷贝到外部的路径 容器ID/名称:文件路径
#从容器内拷出
docker cp 容器ID/名称:容器内路径 容器外路径
#从外部拷贝文件到容器内
docker cp 容器外路径 容器ID/名称:容器内路径
# 修改容器名
docker rename 容器ID/容器名 新容器名
docker-compose 命令
# 前台启动
docker-compose up
# 后台运行
docker-compose up -d
# 查看后台情况
docker-compose ps
# 指定yml文件(docker-compose.yml)
docker-compose up -f
# 停止
docker-compose stop
# 查看网络
docker network ls
# 删除退出的容器
docker-compose rm
# 删除网络
docker network rm 名称
# -p 指定项目前缀
docker-compose -p myProject up -d
# yaml 文件加container_name会删除前缀后缀
# 拉取
docker-compose pull
docker-compose up
# 单独构建
docker-compose build services-name
# 更新
# 手动更新
docker-compose build services-name
# 自动更新
docker-compose up -d --build
# 移除删除services
docker-compose up -d --remove-orphans
# 加载更新本地文件,挂载本地文件Volume,重启即可
docker-composer restart
# 验证.env文件
docker-composer config
docker-composer --env-file ./myenv config
docker-composer --env-file ./myenv up -d
# 简单网络负载均衡 --scale services-name num
docker-compose uo -d --scale services-name=3
运维命令
# 遇到 docker: write /var/lib/docker/tmp/GetImageBlob325372670: no space left on device 错误
# 查看docker工作目录
sudo docker info | grep "Docker Root Dir"
# 查看docker磁盘占用总体情况
du -hs /var/lib/docker/
# 查看Docker的磁盘使用具体情况
docker system df
# 删除异常停止的容器
docker rm `docker ps -a | grep Exited | awk '{print $1}'`
# 删除名称或标签为none的镜像
docker rmi -f `docker images | grep '<none>' | awk '{print $3}'`
# 查找目录 /var/lib/docker/overlay22/ 大于100M大文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr |grep '/var/lib/docker/overlay22/*'
查看网络
# netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
netstat -untlp
# dig 查看dns
more /etc/resolv.conf dns服务器配置
Comment here is closed