docker的架构
docker客户端——docker主程序(服务、镜像、容器)——docker仓库(公共、私有)
镜像和容器的关系
镜像(类)是从docker仓库拉取的,可以复用,但不可以更改;
容器(对象)是基于镜像的运行实体,每个容器都是一个独立的应用系统,可以更改。
docker服务操作命令
- 启动
systemctl start docker
- 停止
systemctl stop docker
- 重启
systemctl restart docker
- 查看状态
systemctl status docker
- 设置开机启动
systemctl enable docker
docker镜像操作命令
- 查看镜像
docker images #查看所有镜像
docker images -q #查看所有镜像的id
- 搜索镜像
docker search mysql(镜像名称)
- 从docker仓库拉取镜像
docker pull mysql(镜像名称)
docker pull mysql:5.7(镜像名称:版本)
- 删除镜像
docker rmi 镜像id #删除制定本地镜像
docker rmi 'docker images -q' #删除所有本地镜像
docker容器相关命令
- 查看容器
docker ps #查看正在运行的容器
docker ps -a #查看所有容器
- 创建并启动容器
docker run 参数
# 创建后直接进入容器,并且退出后关闭容器
docker run -it nginx:latest --name=myNginx /bin/bash
# 创建后不会进入容器,需要通过exec命令进入退出不会关闭容器
docker run -id nginx:latest --name=myNginx /bin/bash
- 进入容器
docker exec -it myNginx /bin/bash # 方式一:通过容器name进入
docker exec -it 容器id /bin/bash # 方式二:通过容器id进入
- 启动容器
docker start myNginx # 通过容器name启动容器
docker start 容器id # 通过容器id启动容器
- 停止容器
docker stop myNginx # 通过容器name停止容器
docker stop 容器id # 通过容器id停止容器
- 删除容器
# 不能删除运行中的容器
docker rm myNginx # 通过容器name删除容器
docker rm 容器id # 通过容器id删除容器
docker ps -aq #删除所有容器
- 查看容器信息
docker inspect myNginx # 通过容器name查看容器信息
docker inspect 容器id # 通过容器id查看容器信息
容器的数据卷
配置数据卷
# 创建容器的时候挂载
docker run ... -v 宿主机目录名(或文件名):容器目录名(或文件名)
# 运行或进入容器的时候挂载
docker exec ... -v 宿主机目录名(或文件名):容器目录名(或文件名)
#举例
docker run -it --name=myNginx -v /root/data1:/root/data2 nginx:lastest
多个-v可以挂载多个数据卷
配置数据卷容器
数据卷在宿主机的位置:
1.宿主机挂载的文件夹
2.数据卷容器在宿主机中的位置
/var/lib/docker/数据卷名称/容器id/文件夹名称