目录
- 一.Docker常用命令
- 1.帮助命令
- 2.镜像命令
- 3.容器命令
- 4.其他常用命令
- 5.更多更详细命令
- 二.Dockerfile常用指令
- 1.常用指令
- 2.CMD 和 ENTRYPOINT 的区别
一.Docker常用命令
1.帮助命令
# docker version //查看docker版本号
# docker info //查看docker的系统信息,包含镜像和容器的数量
# docker 命令 --help //帮助命令
2.镜像命令
- 显示镜像
# docker images //显示所有本地主机上的镜像
# docker images -a //显示所有镜像
# docker images -q //只显示镜像id
- 搜索镜像
# docker search 镜像名 //搜索镜像
# docker search mysql //搜索mysql镜像
# docker search mysql -filter=STARS=2000 //搜索mysql收藏大于2000的镜像
- 下载镜像
- 注意:版本号不能乱写,要在dockerhup搜索上面有的版本。
# docker pull 镜像名 //下载最新版本镜像
# docker pull 镜像名:版本号 //指定版本下载
- 删除镜像
注意:有的镜像不能直接删除,因为有通过他创建的容器,要先删除容器。
# docker rmi 镜像id或镜像仓库名 //删除指定镜像
# docker rmi 镜像id或镜像仓库名 $(docker images -aq) //删除全部镜像
- 构建镜像
注意:必须在你的 Dockerfile
文件目录下执行该命令,不在的话就加 -f
# docker build [可选参数] //下载最新版本镜像
可选参数 | 功能 |
---|---|
-f | 指定Dockerfile文件路径 |
-t | 指定构建的镜像名和tag ,例:# docker build -t 镜像名:tag |
3.容器命令
前提:有镜像才可以创建容器
- 创建并启动容器
# docker run [可选参数] 镜像名 //创建并启动容器
# docker run -it 镜像名 /bin/bash //启动并进入容器
可选参数 | 作用 |
---|---|
–name | 自定义容器名字 例:–name 定义的容器名字 |
-d | 以后台方式启动 |
-it | 使用交互方式启动,进入容器查看内容 |
-p | 指定容器端口,例:-p 8090:8080(8090是对外端口,8080是容器端口) |
-P | 随机端口 |
-v | 挂载目录,双向绑定。 docker容器内的卷,没有指定主机目录情况下都在 /var/lib/docker/volume/xxx/-data 指定路径挂载:-v 主机目录 容器目录 匿名挂载:-v 容器目录 具名挂载:-v 自定卷名:容器卷 |
# docker volume ls //查看所有的挂载卷(匿名挂载是一串乱码,而具名挂载是你自定义的名字)
# docker run -d -P --name nginx001 -v /etc/nginx nginx //匿名挂载
默认是rw(可读可写)
# docker run -d -P --name nginx001 -v ikun:/etc/nginx:ro nginx //具名挂载(ro只针对容器,只可读)
# docker run -d -P --name nginx001 -v ikun:/etc/nginx:rw nginx //具名挂载(rw在容器内既可读又可写)
# docker volume inspect 卷名 //查看这个卷
- 查看容器
# docker ps //显示正在运行的容器
# docker ps -a //显示全部的容器
# docker ps -q //只显示容器id
- 退出容器
# exit //容器停止并退出
ctrl + p + q //退出容器并不停止
- 删除容器
# docker rm 容器id //删除指定容器,不能删除正在运行的容器
# docker rm -f 容器id //强制删除包含正在运行的容器
# docker rm $(docker ps -aq) //删除全部容器
- 启动和停止容器
# docker start 容器id //启动容器
# docker restart 容器id //重启容器
# docker stop 容器id //停止当前正在运行的容器
# docker kill 容器id //强制停止当前容器
4.其他常用命令
- 查看日志
# docker logs 容器id //查看容器日志
- 查看容器进程信息
# docker top 容器id //查看容器进程信息
- 查看容器的元数据
# docker inspect 镜像id //查看容器的元数据
- 进入正在运行的容器
# docker exec -it 容器id /bin/bash //进入正在运行的容器(开启一个新的终端)
# docker attach 容器id //进入正在运行的容器(不开启一个新的终端)
- 从容器内拷贝文件到主机
# docker cp 容器id:容器内路径 目的主机路径 //查看容器日志
5.更多更详细命令
https://www.runoob.com/docker/docker-build-command.html
二.Dockerfile常用指令
1.常用指令
- FROM //基础镜像
- MAINTAINER //镜像的维护者 姓名 + 邮箱
- RUN //镜像构建时执行的命令
- ADD //添加内容
- WORKDIR //设置当前工作目录
- VOLUME //设置挂载目录(可以将容器目录挂载到主机上,实现同步)
- EXPOSE //指定对外端口
- CMD //指定这个容器启动的时候要运行的命令(只有最后一个会生效,可被替代)
- ENTRYPOINT //指定这个容器启动的时候要运行的命令(可以追加)
- COPY //将我们的文件拷贝到镜像中
- ENV //构建的时候设置环境变量
2.CMD 和 ENTRYPOINT 的区别
构建镜像的时候使用 CMD
指令
构建镜像的时候使用 ENTRYPPOINT
指令
相信你们从上面的图片就能看出差别了。