Docker的基本概念
镜像(Image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务。
容器(container)
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建。
仓库(repository)
仓库就是存放镜像的地方。
仓库分为共有仓库和私有仓库。
Docker Hub(默认是国外的)
Docker的常用命令
帮助命令
docker version #显示docker的版本信息
docker info #更详细的消息
docker 命令 --help #docker的帮助命令
镜像命令
*查看已下载的镜像
docker images
搜索镜像
docker search xxx
可选项
-f, --filter filter 过滤t
下载镜像
#如果不写tag,默认为latest
#分层下载
docker pull 镜像名称[:tag]
可选项
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
删除镜像
#删除指定id的镜像
docker rmi -f 镜像id
#删除全部
docker rmi -f $(docker images -aq)
容器命令
查看容器
# 查看当前正在运行的容器
docker ps
# 查看所有容器
docker ps -a
创建容器
创建容器后,容器会运行起来。
创建容器常用的参数说明:
docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
进入容器
容器相当于独立的环境,进入容器就相当于进入了一个新的环境(独立的操作系统、独立的各种软件)
#开启新的终端,进入容器
docker exec -it 容器id bash
#进入正在执行的终端
docker attach 容器id
退出容器
#停止容器并直接退出
exit
#容器不停止退出
ctrl+P+Q
重启容器
#根据id重新启动容器
docker restart 容器id
停止容器
注意:停止容器和删除容器的区别。停止容器后,容器内部的数据还会存在,可以重启容器。而删除容器后,容器内部的数据会丢失(不外挂数据卷),也无法重启。
#根据容器id停止运行的容器
docker stop 容器id
启动容器
docker start 容器id
删除容器
#删除指定的容器,不能删除正在运行的容器 -f 强制删除
docker rm 容器id
#删除所有的容器
docker rm $(docker ps -aq)
docker ps -a -q|xargs docker rm
查看日志
docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
# 显示时间戳并跟踪实时日志
docker logs -tf 容器id
查看容器中的进程信息
docker top 容器id
文件拷贝
# 本地到容器
docker cp 本地路径 容器id或者容器名字:容器内路径
# 容器到本地
docker cp 容器id或者容器名字:容器内路径 本地路径