docker的基本操作
启动docker服务
systemctl start docker
停止docker服务
systemctl stop docker
查看docker的启动状态
systemctl status docker
设置docker开机自启
systemctl enable docker
禁止docker开机自启
systemctl disable docker
重启docker服务
systemctl restart docker
查看docker中的信息
docker info
查看docker info中的具体信息
docker info | grep 'Docker Root Dir:'
docker的镜像加速
由于国内的网络速度问题,我们需要配置加速器进行网络加速,修改配置文件 /etc/docker/daemon.json
下面可以直接生成daemon.json
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
docker的镜像操作实践
下载镜像
docker pull hello-world #案例
浏览镜像文件
docker images
查看镜像详情
docker inspect hello-world 或者 镜像的id
查看镜像的历史
docker history hello-world
导出镜像文件
可以导出Linux中的文件,保存到本地
docker save hello-world | gzip > hello-world.tar.gz
删除镜像文件
docker image rm hello-world
导入镜像文件
要在这个镜像文件的压缩包下执行
docker load < hello-world.tar.gz
运行镜像文件
docker run hello-world
docker容器的操作实践
以centso:7为例
官方镜像仓库地址为https://hub.docker.com/
docker pull centos:7 #下载镜像文件
docker images #查看镜像文件
docker run -it xxxx bash #创建并启动容器
- xxxx 是镜像的id或者镜像名称
- -it 是两个参数 -i是交互式的操作 -t通过终端
- bash 进入操作终端,基于交互式进行相关操作
查看docker中的容器
docker ps #查看运行中的容器
docker ps -a #查看所有的容器,包括以退出的
查看日志信息
docker container logs 容器id
相关操作
docker container stop 容器id或名称 #停止运行中的容器
docker container restart 容器id或名称 #重启容器
docker exec -it 容器id或名称 bash #进入指定的容器
docker container rm 容器id #删除指定的容器
docker container prune #清除所有的容器
docker的数据管理实践
简介:
在容器中管理数据主要有两种方式:
1. 挂载主机目录 (Bind mounts)-最常用 (docker run -v 宿主机目录:容器目录)
2. 数据卷(Vonlumes)
数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除
一、创建数据卷
docker volume create container-vol
二、查看所有数据卷
docker volume ls
查看指定数据卷的信息
docker volume inspect container-vol
查询结果:
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/container-vol/_data",
"Name": "container-vol",
"Options": {},
"Scope": "local"
}
]
三、启动挂载数据卷的容器
docker run -it --mount source=container-vol,target=/root centos:7 bash
简写方式:
docker run -it -v container-vol:/root centos:7 bash
-v container-vol:/root 把数据卷 container-vol 挂载到容器的 /root 目录
四、删除数据卷
docker volume rm container-vol
清理无主数据卷
docker volume prune
挂在主机目录
我们还可以在启动容器时,以目录直接挂载的方式进行数据操作
docker run -it -v /usr/app:/opt/app centos:7 bash
其中:
1)/usr/app:为宿主机目录
2)/opt/app: 为启动容器的一个目录
3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。
查看挂载目录信息
docker inspect 容器id
显示结果:
...
"Mounts": [
{
"Type": "bind",
"Source": "/usr/app",
"Destination": "/opt/app",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
...