docker 入门操作 —— 基本常用命令
docker 和虚拟机的不同
虚拟机是虚拟一套硬件,运行一个完整的操作系统,之后再这个系统上安装和运行软件
docker是容器化技术,不是模拟一个操作系统;容器内的应用运行在宿主机上,是没有自己的内核的,也没有虚拟一套硬件;每个容器都有属于自己的文件系统,互不干扰
docker 的优点
快速的交付和部署
与传统的不同,docker 可以通过打包为镜像一键运行
快捷的升级和扩容
项目被打包为一个镜像,因此在升级或者扩容时,可以直接升级整个镜像或者把镜像部署到其他服务器
简单化的系统运维
容器化之后,开发,测试等环境都可以做到高度一致
高效的计算资源利用
docker 是内核级别的虚拟化,因此可以在一个物理机运行多个容器实例,资源运用到极致
安装docker
本文章所用 docker 为 windows 版本,所用命令通用 linux 版等 docker,可以放心阅读
windows 上打开 Windows PowerShell 操作运行!!!
# 查看docker版本
docker version
出现图中信息说明 docker 安装成功
配置腾讯云镜像
镜像地址
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
]
也可以使用阿里云的镜像地址(阿里云上查找容器镜像服务,点击镜像加速器,根据系统选择适合的镜像加速地址)
docker 的常用命令
帮助命令
docker version # docker 的版本信息
docker info # 查看 docker 的镜像和容器数量,加速源等信息
镜像命令
查看当前 docker 的镜像
docker images
#-a 查看全部镜像
#-q 查看镜像id
搜索 docker 镜像
docker search 镜像名称
下载镜像
docker pull 镜像名称 # 默认下载最新版本,指定版本可在镜像名称后添加 :tag tag表示版本号
删除镜像
docker rmi -f 容器id,容器id... # 容器id可以通过 [docker images] 命令查看
docker rmi -f $(docker images -aq) # 删除全部镜像,通过遍历的方式
容器命令
运行容器
docker run [参数] 镜像名称
# 参数
# --name 容器名字,用来区分容器
# -d 后台的方式运行
# -it 使用交互的方式运行,可进入容器查看内容
# -p 指定端口 -p 8081:8080 前一个端口表示主机端口,后一个表示容器端口
# 例如 docker run --name tomcat01 -d -p 8081:8080 tomcat
# 启动一个名为tomcat01的容器,访问端口号为8081
后台启动容器,例如启动 centos ,当 docker 发现当前没有应用或者没有提供服务,就会自动停止,无法启动,nginx…等也是如此,当然,通过交互方式启动,只要在不退出的情况下就会一直启动,也可以通过 [Ctrl+ P + Q] 让容器不停止退出
进入容器
docker exec -it 容器id /bin/bash # 进入正在后台运行的容器,并打开一个新的终端(常用)
docker attach 容器id # 进入正在后台运行的容器,不会开启新的终端
退出容器
exit # 退出并停止容器
Ctrl+ P + Q # 退出不停止容器 不是输入,而是按键
列出容器
docker ps # 列出当前运行的容器信息
-a # 列出所有容器信息(包含已经关闭的容器)
-q # 列出所有容器id
-n=number # 列出最近几条信息
删除容器
docker rm 容器id # 删除不在运行的容器,强制删除使用rm -f
docker rm -f $(docker ps -aq) # 删除所有容器
启动和停止容器
docker start 容器id # 启动容器
docker restart 容器id # 重新启动容器
docker stop 容器id # 停止容器
docker kill 容器id # 强制停止容器
其他常用命令
查看容器日志
docker logs [参数] 容器id
-tf # 查看所有日志
--tail number # 表示查看日志条数
查看容器进程
docker top 容器id
查看容器元数据
docker inspect 容器id
拷贝数据
docker cp 容器id:容器内路径 目标路径
# docker cp 2385ab5d487a:/demo.js E:\测试
# 适合非同个容器进行拷贝
cp -r 拷贝路径 目标路径
# -r 向下遍历
# cp -r webapp.dist/* webapps
# 适合同个容器内进行
本文章内容通过视频总结而来,如有不足或者错误之处,欢迎各位大神指教