docker info2.启动docker服务
systemctl start docker3.查看docker状态
systemctl status docker4.docker设置
a)设置Docker开机自启
systemctl enable docker
b) 禁用Docker开机自启
systemctl disable docker
c)重新启动Docker服务
systemctl restart docker
d)停止Docker服务
systemctl stop docker5. Docker镜像加速
由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
下面命令直接生成文件 daemon.json
cat </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-world7.创建并启动容器(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 #802为自己的容器id(一般写前三位即可)
说明,查看容器的运行日志时,容器应该处于一种运行状态.
e) 停止(stop)或重启(Restart)容器(Container)
停止运行的容器,代码如下:
docker container stop 802 #802为容器自己的id
重新启动容器,代码如下:
docker container restart 802 #802位容器自己的id
f) 进入(exec)指定容器(Container)
当容器处于运行状态,要进入容器,可以使用 docker exec 命令,例如:
docker exec -it 802 bash #802为容器id
说明,假如容器处于一种非运行状态,此时你执行docker exec进入容器会出现如下问题:
g) 删除(rm)容器(Container)
假如容器不用了,可执行删除操作,例如:
docker container rm 802 #802为容器id
说明,假如容器正在运行执行删除,会出现如下问题,例如:
其中,如果删除运行中的容器,需要添加 -f 参数执行强制删除,例如:
docker container rm -f 802 #802为容器id
清理所有处于终止状态容器,例如:
docker container prune8.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 prune9.挂载主机目录
我们还可以在启动容器时,以目录直接挂载的方式进行数据操作,例如:
docker run -it -v /usr/app:/opt/app centos:7 bash
其中:
1)/usr/app:为宿主机目录
2)/opt/app: 为启动容器的一个目录
3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。
例如:
a) 查看挂载目录信息
docker inspect 91a #91a 为容器id
结果显示:
...
"Mounts": [
{
"Type": "bind",
"Source": "/usr/app",
"Destination": "/opt/app",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
...



