帮助命令
docker version # docker版本信息
docker info # 系统级别的信息,包括镜像和容器的数量
docker 命令 --help
镜像命令
docker images (查看所有本地主机上的镜像)
# 解释
REPOSITORY # 镜像的仓库
TAG # 镜像的标签
IMAGE ID # 镜像的ID
CREATED # 镜像的创建时间
SIZE # 镜像的大小
# 可选项
--all , -a # 列出所有镜像
--quiet , -q # 只显示镜像的id
docker search (查找镜像 )
# 可选项
filter=STARS=3000 # 搜素出来的镜像就是STARS大于3000的
docker pull (下载镜像)
docker pull mysql:tag 不加tag默认下载最新版本( docker pull mysql:5.7)
dokcer rmi (删除镜像)
docker rmi -f IMAGE ID # 删除指定镜像
docker rmi -f IMAGE ID1 IMAGE ID2 IMAGE ID3 # 删除多个镜像
docker rmi -f $(docker images -aq) # 删除所有镜像
docker run (运行镜像)
# 参数说明
--name=“Name” #容器名字 tomcat01 tomcat02 用来区分容器
-d #后台方式运行 (docker run -d 启动后容器立即结束问题)
-it #使用交互方式运行,进入容器查看内容
-p(小写) #指定容器的端口 -p 8080:8080
-p #ip:主机端口:容器端口
-p #主机端口:容器端口(常用)
-p #容器端口
-P(大写) #随机指定端口
通过-it方式进入
exit #直接停止容器,并且退出容器
ctrl + p + q #容器不停止退出
容器命令
docker ps (列出所有运行的容器)
# 参数说明
无参数 #列出当前正在运行的容器
-a #列出当前正在运行的容器+历史运行的容器,所有容器
-n=? #显示最近创建的容器
-q #只显示容器的编号
docker rm (删除容器)
docker rm 容器id #删除容器,但是删除不了正在运行的容器
docker rm -f ${docker ps -aq} #删除所有容器
启动和停止容器操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止容器
docker inspect (查看容器元数据)
docker inspect (查看容器元数据)
docker exec | docker attach (进入当前正在运行的容器)
#容器运行时候一般是后台方式运行有时候需进入容器,修改一些配置通过 -it交互方式进入
后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。
docker exec -it 容器id /bin/bash
docker attach 容器id
区别:
exec进入容器后通过exit不会停止容器,而attach进入容器后通过exit会停止容器
exec进入容器后开启一个新的终端,attach同样操作的是已运行的容器,可以将本机标准输入(键盘输入)输到容器中,也可以将容器的输出显示在本机的屏幕上,如果你想查看容器运行过程中产生的标准输入输出,用attach
docker cp (容器内文件拷贝到主机)
docker cp 容器id:/容器内路径 /当前宿主机路径
#可以发现容器停止了,依然能进行拷贝,只要容器在数据就在,跟容器状态没有关系
#针对主机文件拷贝到容器内一般是通过挂载来实现
docker commit (提交容器成为一个新的镜像)
docker cmmit -m="描述信息" -a="作者" 容器id 目前镜像名:TAG
实操:官方tomcat镜像webapps目录下没有默认helloworld页面导致访问localhost:8080报404,自己打包一个有默认界面的镜像
# 运行一个容器
1、 docker run -d -p 8080:8080 tomcat
# 进入容器
2、 docker exec -it 0e149242be2 /bin/bash
#将webapps.dist目录下所有文件拷贝到webapps目录下
3、 cp -r webapps.dist/* webapps
#提交改变
4、 docker commit -m="默认tomcat访问界面" -a="lb" 0e149242be2a tomcat02:1.0
#查看生成的镜像
5、docker images
docker top (查看运行中的进程信息)
# 查看容器中运行的进程信息,支持 ps 命令参数。
# docker top mymysql
docker logs (容器日志)
# 获取容器的日志
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志
# docker logs -f mynginx
# docker logs --since="2016-07-01" --tail=10 mynginx
docker stats (容器资源使用情况)
# 显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等。
-all , -a :显示所有的容器,包括未运行的。
--format :指定返回值的模板文件。
--no-stream :展示当前状态就直接退出了,不再实时更新。
--no-trunc :不截断输出。
输出详情
CONTAINER ID 与 NAME: 容器 ID 与名称。
CPU % 与 MEM %: 容器使用的 CPU 和内存的百分比。
MEM USAGE / LIMIT: 容器正在使用的总内存,以及允许使用的内存总量。
NET I/O: 容器通过其网络接口发送和接收的数据量。
BLOCK I/O: 容器从主机上的块设备读取和写入的数据量。
PIDs: 容器创建的进程或线程数。
以JSON格式输出
# docker stats nginx --no-stream --format "{{ json . }}"
输出指定信息
# docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" fervent_panini 5acfcb1b4fd1 drunk_visvesvaraya big_heisenberg
restart start stop (启动和停止服务)
命令必须在 `docker-compose.yml` 文件所在的目录下执行
# 前台启动, 启动项目中的所有服务。
docker-compose up
# 后台启动, 启动所有服务并在后台运行。
docker-compose up -d
# 停止所有服务。
docker-compose stop
restart
docker-compose restart 重启服务容器。
docker-compose restart # 重启工程中所有服务的容器
docker-compose restart nginx # 重启工程中指定服务的容器
start
docker-compose start启动服务容器。
docker-compose start # 启动工程中所有服务的容器
docker-compose start nginx # 启动工程中指定服务的容器
stop
docker-compose stop停止服务容器。
docker-compose stop # 停止工程中所有服务的容器
docker-compose stop nginx # 停止工程中指定服务的容器
pause unpause (暂停,恢复服务容器)
pause
docker-compose pause暂停服务容器
docker-compose pause # 暂停工程中所有服务的容器
docker-compose pause nginx # 暂停工程中指定服务的容器
unpause
docker-compose unpause恢复服务容器。
docker-compose unpause # 恢复工程中所有服务的容器
docker-compose unpause nginx # 恢复工程中指定服务的容器
build (构建和重构服务)
# 构建服务的镜像
docker-compose build
# 如果服务镜像不存在,则构建镜像并启动服务。
docker-compose up –build
# 重构服务。
docker-compose up --force-recreate