1.检查是否安装成功或docker信息
docker info
2.启动docker服务
systemctl start docker
3.查看docker状态
systemctl status docker
4.docker设置
a)设置Docker开机自启
systemctl enable docker
b) 禁用Docker开机自启
systemctl enable docker
c)重新启动Docker服务
systemctl restart docker
d)停止Docker服务
systemctl stop docker
5. 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
说明:在执行如上指令时,保证你的登录用户为root管理员用户,并且设置好以后重启docker服务.
6.Docker镜像操作
a) Docker下载镜像 语法:docker pull 镜像名 案例:
docker pull hello-world
b) docker浏览镜像文件
docker images
c) 查看镜像详情 语法:docker inspect 镜像名
docker inspect hello-world
d) 查看镜像历史 一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,例如:
docker history hello-world
e) 导出镜像文件 镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用
docker save hello-world | gzip > hello-world.tar.gz
f) 删除镜像文件 语法:docker image rm 镜像名或镜像id
docker image rm hello-world
g) 导入镜像操作 镜像导入(要在hello-world.tar.gz 文件所在目录下执行)
docker load < hello-world.tar.gz
****h)运行镜像文件 基于镜像,启动容器运行
docker run hello-world
7.创建并启动容器(Container)
a) 创建并启动容器(Container)
基本语法解析
docker run -it xxxx bash
其中: 1)xxxx - 镜像名, 或 image id 的前几位, 2)-it 这是两个参数(-i表示交互式操作, -t 表示终端) 3) bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令)。
案例:通过docker启动运行 centos7镜像
docker run -it centos:7 bash
b) 查看Docker中的容器(Container) 查看docker运行中的容器(要在宿主机执行docker指令)
docker ps
说明,假如在容器中执行docker指令会出现如下问题,例如: c) 查看docker运行中的所有容器
docker ps -a
d) 查看容器日志(logs)信息 查看容器启动运行日志时,这个指令非常重要,假如容器没有启动,要通过此指令去看一下错误日志。
docker container logs 802
说明,查看容器的运行日志时,容器应该处于一种运行状态.
e) 停止(stop)或重启(Restart)容器(Container) 停止运行的容器,代码如下:
docker container stop 802
重新启动容器,代码如下:
docker container restart 802
f) 进入(exec)指定容器(Container) 当容器处于运行状态,要进入容器,可以使用 docker exec 命令,例如:
docker exec -it 802 bash
说明,假如容器处于一种非运行状态,此时你执行docker exec进入容器会出现如下问题: g) 删除(rm)容器(Container) 假如容器不用了,可执行删除操作,例如:
docker container rm 802
说明,假如容器正在运行执行删除,会出现如下问题,例如: 其中,如果删除运行中的容器,需要添加 -f 参数执行强制删除,例如:
docker container rm -f 802
清理所有处于终止状态容器,例如:
docker container prune
8.docker数据管理操作
在容器中管理数据主要有两种方式:
数据卷(Volumes) 挂载主机目录 (Bind mounts) 数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除
a) 创建数据卷
docker volume create container-vol
b)查看所有数据卷
docker volume ls
c) 查看指定 数据卷 的信息
docker volume inspect container-vol
查询的结果:
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/container-vol/_data",
"Name": "container-vol",
"Options": {},
"Scope": "local"
}
]
d) 启动挂载数据卷的容器
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 目录
e) 删除数据卷 说明:如果数据卷被容器使用则无法删除
docker volume rm container-vol
f) 清理无主数据卷
docker volume prune
9.挂载主机目录
我们还可以在启动容器时,以目录直接挂载的方式进行数据操作,例如:
docker run -it -v /usr/app:/opt/app centos:7 bash
其中: 1)/usr/app:为宿主机目录 2)/opt/app: 为启动容器的一个目录 3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。 例如: a) 查看挂载目录信息
docker inspect 91a
结果显示:
...
"Mounts": [
{
"Type": "bind",
"Source": "/usr/app",
"Destination": "/opt/app",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
...
|