dock常用命令
docker version //显示docker的版本信息
docker info //显示docker的系统信息
docker 命令 --help //显示命令的帮助信息
docker镜像命令
docker images //查看本机所有的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 5 months ago 13.3kB
#解释
REPOSITORY 镜像仓库源
TAG 镜像标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像大小
#可选项
-a --all 显示所有
-q --quiet 只显示镜像id
docker search 搜索命令
#可选项
-f, --filter filter 根据提供的条件过滤输出
--format string 使用 Go 模板进行漂亮打印搜索
--limit int 最大搜索结果数(默认 25)
--no-trunc 不截断输出
#通过收藏来过滤
--filter=STARS=3000
docker pull 镜像名[:tag] 下载镜像
-a, --all-tags 下载存储库中的所有标记图像
--disable-content-trust 跳过图像验证(默认为 true)
--platform string 如果服务器支持多平台,则设置平台
-q, --quiet 抑制详细输出
#指定版本下载
docker pull mysql:5.7
docker rmi 镜像id 删除镜像
#删除多个镜像
docker rmi -f 镜像id 镜像id 镜像id 镜像id...
#删除所有镜像
docker rmi -f $(docker images -aq)
docker容器命令
#有镜像才可以创建容器
docker pull centos 下载一个centos镜像
新建容器并启动
docker run [可选参数] image
#参数说明
--name 容器名称
-d 后台方式运行
-it 使用交互方式运行
-p 指定容器端口映射 8080:8080
-p 主机端口:容器端口(常用)
-p ip:主机端口:容器端口
-p 容器端口
-P 随机指定端口
#启动并进入容器
sudo docker run -it 镜像名 /bin/bash
ubuntu@ip-172-31-7-2:~$ sudo docker run -it centos /bin/bash
#退出容器命令
exit
#列出所有运行中的容器
docker ps
-a 列出所有运行中的容器+历史运行的容器
-n=? 显示最近创建的容器
-q 只显示容器的编号
#退出容器
exit 直接停止并退出
ctrl + p + q 容器只退出不停止
删除容器
docker rm 容器id (无法删除运行中的容器,如果要强制删除 rm -rf)
docker rm -f $(docker ps -aq) 删除所有容器
启动和停止容器
docker start 容器id //启动
docker restart 容器id //重启
docker stop 容器id //停止
docker kill 容器id //强制停止
常用其他命令
后台启动
docker run -d 镜像id
#坑:docker如果发现没有提供服务即没有运行的程序会立即杀死容器
查看日志
docker logs 容器id
#可选项
--details 显示提供给日志的额外详细信息
-f, --follow 跟踪日志输出
--since string 显示自时间戳(例如 2013-01-02T13:23:37Z)或相关(例如 42m 为 42 分钟)以来的日志
-n, --tail string 从日志末尾显示的行数(默认为“全部”)
-t, --timestamps 显示时间戳
--until string 在时间戳(例如 2013-01-02T13:23:37Z)或相关(例如 42m 为 42 分钟)之前显示日志
查看docker容器中进程信息
docker top 容器id
查看镜像的元数据
docker inspect 容器id
进入当前正在运行的容器
docker exec -it 容器id /bin/bash //进入容器后开启新的终端,可以操作(常用)
docker attach 容器id //进入正在运行的容器
从容器拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机路径
小结
端口暴露的概念
commit 镜像
docker commit 提交容器成为一个新的版本
docker commit -m "提交的描述信息" -a "作者" 目标镜像名 标记(tag)
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
使用数据卷
1.命令挂载
docker run -it -v 主机目录:容器目录
docker run -it -v /home/test:/home centos /bin/bash
启动后通过 docker inspect 容器id
匿名挂载和具名挂载
匿名挂载
docker run -d -p --name nginx01 -v /etc/nginx nginx
查看所有卷(volume)的情况
docker volume ls
具名挂载
-v 卷名:容器内路径
查看卷
docker volume inspect 容器名称
拓展
-v 容器内路径 :ro 或 rw来指定容器读写权限
ro:只读 --只能从外部改变文件,容器内无法更改
rw:读写--容器内可续可写(默认)
权限一旦设置后将无法修改
初识dockerfile
dockerfile就是构建docker镜像的文件,是一串命令脚本
这里的每个命令就是镜像的一层
dockerfile构建过程
基础知识
1.每个保留关键字(指令)都必须是大写
2.执行顺序从上到下顺序执行
3.#表示注释
4.每一个指令都会创建一个新的镜像层并提交
//创建一个自己的centos
构建镜像
docker build -t 镜像名称
发布镜像