镜像相关
查找指定包
docker search {packageName}
下载指定镜像
docker pull {packageName}
下载指定版本镜像
docker pull {packageName}:{version}
查看当前所有镜像
docker images
查看指定镜像的所有版本
docker images {packageName}
删除指定镜像
注意,涉及的删除操作都是不可逆的,请谨慎操作。在删除镜像之前,最好先备份重要的镜像。
docker rmi {packageName}
注意:如果当前想要删除的镜像已有创建的容器,则需要删除容器之后才允许删除
强制删除存在镜像的容器
docker rmi -f {packageName}
立即删除所有未使用的镜像
docker image prune (-f)
容器
运行容器
以
mysql
举例
docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
分解一下命令:
docker run # 用于根据指定的镜像创建和启动一个新的容器
-i # (--interactive): 保持容器的标准输入打开,以交互模式运行容器,通常与 -t 同时使用;
-t # (--tty): 为容器重新分配一个伪输入终端,通常与 -i 一起使用来提供交互式 shell;
-d # (--detach): 后台运行容器,并打印容器ID;
--name mysql-test # 设置容器名,不可重复
-p 3307:3306 # 将容器内部的端口 3306 映射到宿主机的端口 3307(因为我本地已经存在一个3306的mysql端口占用,所以此处我使用3307做演示,同时也更方便展示两者代表的环境)
-e MYSQL_ROOT_PASSWORD=123456 # environment, 设置容器环境变量
mysql # 指定要使用的镜像名称
该行命令将创建一个名为 mysql-test 的新容器,从 mysql 镜像启动,设置 root 用户的密码为 123456,并将容器的 3306 端口映射到宿主机的 3307 端口上。
查看当前运行的容器
docker ps
查看查看当前所有容器
docker ps -a
查看指定容器日志
docker logs {CONTAINER_ID/NAMES}
docker logs [OPTIONS] {CONTAINER_ID/NAMES}
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
例子:
- 查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 {CONTAINER_ID/NAMES}
- 查看最近30分钟的日志:
docker logs --since 30m {CONTAINER_ID/NAMES}
- 查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" {CONTAINER_ID/NAMES}
- 查看某时间段日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" {CONTAINER_ID/NAMES}
- 查看实时日志
docker logs -f {CONTAINER_ID/NAMES}
容器自动启动
docker run --restart=always {CONTAINER_ID/NAMES}
docker update --restart=always {CONTAINER_ID/NAMES}
进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker attach
docker exec
:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
attach 命令
docker attach {CONTAINER_ID/NAMES}
注意: 如果从这个容器退出,会导致容器的停止。
exec 命令
docker exec -it {CONTAINER_ID/NAMES} /bin/bash
停止容器
docker stop {CONTAINER_ID/NAMES}
启动容器
docker start {CONTAINER_ID/NAMES}
重启容器
docker restart {CONTAINER_ID/NAMES}
导出和导入容器
导出容器
如果要导出本地某个容器,可以使用
docker export
命令。
docker export {CONTAINER_ID/NAMES} > {filename.tar}
导出容器 1e560fca3906 快照到本地文件 ubuntu.tar。
导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
删除容器
安全操作下,只有已停止的容器才允许删除;
注意,涉及的删除操作都是不可逆的,请谨慎操作。在删除镜像之前,最好先备份重要的镜像。
docker stop {CONTAINER_ID/NAMES} && docker rm {CONTAINER_ID/NAMES}
未停止的容器无法删除
强制删除容器
docker rm -i {CONTAINER_ID/NAMES}
评论区