Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余
项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了
Apache 2.0 协议,项目代码在 GitHub 上进行维护。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案,使用Docker,开发和测试可以快速部署和迁移环境,并且能保证环境的一致性,从而提升软件的开发和维护效率。
与虚拟机相比,docker有优点也有缺点,具体可以看下图:
正好最近在部署环境,就把docker常用的操作和命令给大家做一个总结:
docker进程相关命令
systemctl start docker
#启动docker服务
systemctl stop docker
#停止docker服务
systemctl restart docker
#重启docker服务
systemctl status docker
#查看docker服务状态
systemctl enable docker
#设置开机启动服务
docker容器管理命令
docker run --name={your_name} --d {image_name}
# 运行容器
参数说明:
-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
-it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
--name:为创建的容器命名。
docker ps
# 查看正在运行的容器
docker ps -s -a
#查看当前所有容器
docker stop容器名称
#停止容器
docker restart 容器名称
#重启容器
docker kill 容器名称
#杀死容器
docker rm -f 镜像ID或者镜像名
#删除已经停止的容器
如果容器是运行状态则删除失败,需要停止容器才能删除
docker镜像管理命令
docker images
#查看当前机器的所有镜像
docker images –q
# 查看所用镜像的id
docker search 镜像名称
#搜索镜像,网络中查找需要的镜像
docker pull 镜像名称
#从Docker仓库拉取镜像,名称:版本号
docker push 镜像名称
#推送镜像
docker rmi 镜像名称/镜像id
#删除本地机器的镜像
docker rmi docker images -q
# 删除所有本地镜像
docker tag 镜像名称:tag 镜像名称:tag
#为一个镜像打tag
docker save {image_name} > {new_image_name}.tar
#镜像打包成一个tar包
docker load < {image_name}.tar
#解压一个镜像tar包
docker查看日志信息
docker logs -f
容器名称 #查看容器日志
docker info
#查看docker服务的信息
docker inspect 容器名称
# 获取镜像的元信息,详细信息
与容器交互的命令
进入正在运行的容器
docker exec -it 容器ID或者容器名 /bin/bash
exec的意思是在容器中运行⼀个命令。/bin/bash是固有写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动 bash。
退出容器
exit
#退出也关闭容器;
Ctrl+P+Q
#退出不关闭容器
创建启动容器时,使用–v参数设置数据卷
docker run ... –v 宿主机目录/文件:容器内目录/文件
数据卷是宿主机的一个目录或文件
目录必须是绝对路径
如果目录不存在,会自动创建
可以挂载多个数据卷
拷贝文件
docker cp 主机文件路径 容器ID或容器名:容器路径
#宿主机文件拷贝到容器中
docker cp 容器ID或容器名:容器路径 主机文件路径
#容器文件拷贝到宿主机中
整理不易,觉得有用,记得点个赞