零、帮助命令
docker version # 显示docker的版本信息 docker info # 显示docker 的系统信息,包括镜像和容器的数量 docker [命令名称] --help # 帮助命令
一、镜像命令
docker images # 查看镜像 docker images --help # 查看后面可选参数 docker images -a # 列出所有镜像 docker images -q # 只显示镜像 id docker search # 搜索镜像 docker search mysql --filter=STARS=3000 # 搜索收藏数大于 3000 的镜像 docker pull # 下载镜像 docker pull mysql # 下载最新版镜像 docker pull mysql:5.7 # 下载指定版本镜像 docker rmi # 删除镜像 docker rmi -f 镜像id #删除指定容器 docker rmi -f 镜像id 镜像id 镜像id #删除多个镜像 docker rmi -f $(docker images -aq) #删除全部镜像
二、容器命令
1、先创建一个linux centos 的容器
docker pull centos
2、新建容器并启动
docker run [可选参数] image #参数说明 --name="Name" 容器的名字 tomcat01 tomcat02,用来区分容器 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口 -p 主机端口:容器端口(常用) -p 容器端口 -P 随机指定端口 docker run -d -p 3344:80 --name nginx01 nginx # 例 启动一个nginx的容器
3、列出所有的运行容器
docker ps #列出所有正在运行的容器 -a #列出当前正在运行的容器,附带显示历史运行的容器 -n=? #显示最近创建的容器 -q #只显示容器的编号
4、退出容器
exit #停止运行容器并退出 Ctrl + P + Q #容器不停止退出
5、删除容器
docker rm 容器 id #删除指定的容器 docker rm -f $(docker ps -aq) #删除所有的容器 docker ps -a -q|xargs docker rm #删除所有的容器
6、启动和停止容器的操作
docker start 容器 id #启动容器 docker restart 容器 id #重启容器 docker stop 容器 id #停止当前运行的容器 docker kill 容器 id #强制停止当前容器
三、常用其他命令
1、后台启动容器
docker run -d 镜像名 #docker run -d centos #问题:docker ps后,发现 centos 停止了 #常见的坑,docker 容器使用后台运行,就必须要有要一个前台进程,如果前台没有应用,就会自动停止 #例如 Nginx 容器启动后,发现自己没有提供服务,会立刻停止
2、查看日志
docker logs -f -t --tail 数量 容器 #没有日志 #自己编写一段 shell 脚本 docker run -d centos /bin/sh -c "while true;do echo duty;sleep 1;done" #显示日志 -tf #显示日志 --tail number #要显示的日志数 docker logs -tf --tail 10 d83f235d0a49
3、查看容器中进程信息
docker top 容器ID
4、查看镜像的元数据
docker inspect 容器id
5、进入当前正在运行的容器
#容器通常使用后台方式运行,需要进入容器,修改一些配置 #方式一 docker exec -it 容器ID bashShell docker exec -it d83f235d0a49 /bin/bash ps -ef #centos中查看进程信息 #方式二 docker attach 容器id #区别 docker exec #进入容器后开启一个新的终端,可以在里面操作(常用) docker attach #进入容器正在执行的终端,不会启动新的进程
6、从容器内拷贝文件到主机上 或 从主机拷贝文件到容器中
#从容器内拷贝文件到主机上 docker cp 容器id:容器内路径 目的主机路径 #例子 docker cp 961e906713be:/home/test.java /home # 从主机拷贝文件到容器中 docker cp 目的主机路径 容器id:容器内路径 #例子 docker cp /home 961e906713be:/home/test.java #拷贝是一个手动过程,使用 -v 卷技术可以实现自动同步
7、查看容器占用CPU和内存
docker stats
四、commit镜像
# 命令用法 docker commit -m="描述信息" -a="作者名称" 容器ID 目前镜像名称:[TAG 版本号] docker commit -m="add webapps" -a="zjwlgr" cfbf032173e4 tomcat01:1.0 # 之后查看本地镜像会多一个tomcat01 TAG 1.0 的镜像,然后启动它 docker run -d -p 8080:8080 --name tomcat02 tomcat01:1.0