1、Docker 操作命令
启动 Docker
systemctl start docker
停止 Docker
systemctl stop docker
重启 Docker
systemctl restart docker
查看 Docker 状态
systemctl status docker
开机自动启动Dockers
systemctl enable docker
查看 Docker 概要信息
docker info
查看 Docker 版本
docker -vocker -v
查看 Docker 帮助文档, 忘记了某些命令便可使用此进行查看与回顾
docker --help
如忘记拉取命令,可以如下使用
docker pull --help
2、镜像相关命令
2.1 查询镜像
这些镜像都存储于 /var/lib/docker 目录下
#查询本地所有镜像
docker images
#查询镜像名为java的镜像列表
docker images java
列别 说明
repository 镜像名称
tag 标签
image id 镜像ID
created 镜像的创建日期
size 镜像的大小
2.2 搜索镜像
搜索镜像
# 搜索镜像
docker search 镜像名
#搜索用户评价大于400的java镜像
docker search -f=stars=400 java
列别 说明
name 仓库名称
description 镜像描述
stars 用户评价,反映该镜像的受欢迎程度
official 是否官方
automated 该镜像是由 Docker Hub 自动构建流程创建的
2.3 拉取镜像
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker pull 镜像名
docker pull 镜像名:tag
拉取最新版 mysql
docker search mysql
拉取JAVA指定版本号的镜像
docker pull java
出现报错
Using default tag: latest
Error response from daemon: manifest for java:latest not found: manifest unknown: manifest unknown
这里错误的意思是Docker需要我们指定下载镜像的版本号,我们可以去Docker官方镜像搜索
docker pull java:openjdk-7-jre-alpine
2.4 删除镜像
镜像 ID 也可根据镜像名称
docker rmi 镜像ID
删除所有镜像
docker rmi $(docker images -q)
强制删除镜像
docker rmi -f 镜像ID
2.5 保存和加载镜像
#保存镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
#加载镜像
docker load -i 镜像保存文件位置
2.6 镜像标签
镜像做一个标签添加,从而行进区分
docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG
# 如果省略TAG 则会为镜像默认打上latest TAG
docker tag aaa bbb
2.7 运行镜像
docker run 镜像名
docker run 镜像名:Tag
运行后,出现tomcat 默认占用的8080 端口,说明该镜像已经是启动了 ,但是 咱好像鼠标没有回到咱服务器上了 ,这怎么办呢 ?
使用 Ctrl+C (注:此方式虽然可以退出容器,但此种命令操作方式却是错误的,详细缘由请见下文的容器命令)
3、容器相关命令
3.1 查看容器
#查看运行容器
docker ps
#查看所有容器
docker ps -a
#查看最后一次运行的容器
docker ps -l
#查看停止的容器
docker ps -f status=exited
3.2 运行容器
docker run 镜像名
docker run 镜像名:Tag
-i 运行容器
-t 容器启动后自动进入其命令行
–name 为创建的容器命名
-v 表示目录映射关系,前者为宿主机目录,后者是映射到宿主机上的目录
-d 加了这个参数则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)
-p 表示端口映射,前者为宿主机端口,后者是容器内的映射端口
常用创建容器的方式为交互式创建容器和守护式创建容器,如下:
#交互式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
#守护式创建容器
docker run -di --name=容器名称 镜像名称:标签
#登录守护式容器
docker exec -it 容器名称/ID /bin/bash
从容器内退出到自己服务器中,需注意两个退出命令的区别
#直接退出 未添加 -d(守护式容器) 时 执行此参数 容器会被关闭
exit
#优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q
创建一个tomca容器
docker run -id -p 8080:8080 --name=test17 tomcat1:test
# netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
netstat -untlp
3.3 容器的停止、启动和重启
#启动容器
docker start容器名称/ID
#停止容器
docker stop 容器名称/ID
#重启容器
docker restart 容器名称/ID
#kill容器
docker kill 容器ID/容器名
3.4 容器文件拷贝
#从容器内 拷出
docker cp 容器ID/名称:容器内路径 容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称:容器内路径
3.5 查看容器日志
docker logs --
tail=要查看末尾多少行 默认all 容器ID
3.6 目录挂载
在创建容器时,我们可以将宿主机的目录与容器内的目录进行映射,这样就可以通过修改宿主机的目录文件从而直接影响容器了。
docker run -di -v 宿主机目录:容器目录 --name=容器名称 镜像名称:标签
-v命令可以多次使用,即一个容器可以同时挂载多个文件,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!
3.7 更换容器名
docker rename 容器ID/容器名 新容器名
3.8 创建镜像
docker commit -a="作者" -m="说明" 容器ID/容器名 镜像名:标签
3.9 查看容器 IP 地址
# 查看容器 ip 以及相关的各种数据
docker inspect 容器名称/ID
# 查看容器 ip 地址并输出
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称/ID
3.10 删除容器
#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)
3.11 导入和导出容器
#导出容器
docker export 容器ID > XXX.tar
#import 从tar包中的内容创建一个新的文件系统再导入为镜像
cat XXX.tar | docker import - 镜像名:标签
4、运维相关命令
4.1 查看docker工作目录
docker info | grep "Docker Root Dir"
4.2 查看docker磁盘占用总体情况
du -hs /var/lib/docker/
4.3查看Docker的磁盘使用具体情况
docker system df
删除 无用的容器和 镜像
4.4 删除异常停止的容器
docker rm `docker ps -a | grep Exited | awk '{print $1}'`
4.5 删除名称或标签为none的镜像
docker rmi -f `docker images | grep '<none>' | awk '{print $3}'`
如果看到了这里,docker基本上入门了;