Docker

目录

Docker运行机制

docker pull 执行过程:

docker run 执行过程:

Docker基本操作

启动docker服务

查看Docker状态

设置Docker开机自启

禁用Docker开机自启

重新启动Docker服务

查看Docker信息

查看docker info中具体key的信息,例如:

停止docker服务

Docker镜像加速

Docker镜像操作

下载镜像

浏览镜像文件

查看镜像详情

查看镜像历史

导出镜像文件

删除镜像文件

导入镜像操作

运行镜像文件

基于镜像,启动容器运行。

Docker容器操作

下载镜像(Image)

查看Docker中的容器(Container)

查看容器日志(logs)信息

停止(stop)或重启(Restart)容器(Container)

停止运行的容器,代码如下:

重新启动容器,代码如下:

进入(exec)指定容器(Container)

当容器处于运行状态,要进入容器,可以使用 docker exec 命令,例如:

从容器(Container)中退出(exit)

删除(rm)容器(Container)

Docker运行机制


docker pull 执行过程:

1)客户端将指令发送给docker daemon
2)docker daemon 先检查本地images中有没有相关的镜像
3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地

docker run 执行过程:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层
  • 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序

Docker基本操作

启动docker服务

systemctl start docker

查看Docker状态

查看docker是否启动了,是否是运行状态.

systemctl status docker

设置Docker开机自启

systemctl enable docker


禁用Docker开机自启

systemctl disable docker


重新启动Docker服务

 systemctl restart docker


查看Docker信息

docker info


查看docker info中具体key的信息,例如:

docker info | grep 'Docker Root Dir:'


停止docker服务

systemctl stop docker


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 镜像名

docker pull hello-world


浏览镜像文件

docker images


查看镜像详情

语法:docker inspect 镜像名或镜像id

docker inspect hello-world


查看镜像历史


一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,例如:

docker history hello-world


导出镜像文件


镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用

docker save  hello-world | gzip > hello-world.tar.gz  


删除镜像文件

语法:docker image rm 镜像名或镜像id

docker image rm hello-world


导入镜像操作

镜像导入(要在hello-world.tar.gz 文件所在目录下执行)

docker load < hello-world.tar.gz  


运行镜像文件


基于镜像,启动容器运行。

docker run hello-world

Docker容器操作

下载镜像(Image)


通过docker pull指令下载CentOS镜像,例如:

docker pull centos:7


说明,官方镜像仓库地址为https://hub.docker.com/

下载完以后,查看centos7镜像文件。

docker images


创建并启动容器(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

查看Docker中的容器(Container)

查看docker运行中的容器(要在宿主机执行docker指令)

docker ps

查看docker运行中的所有容器

docker ps-a

查看容器日志(logs)信息

查看容器启动运行日志时,这个指令非常重要,假如容器没有启动,要通过此指令去看一下错误日志。

docker container logs 802  #802为自己的容器id(一般写前三位即可)

停止(stop)或重启(Restart)容器(Container)


停止运行的容器,代码如下:

docker container stop 802  #802为容器自己的id


重新启动容器,代码如下:

docker container restart 802 #802位容器自己的id


进入(exec)指定容器(Container)


当容器处于运行状态,要进入容器,可以使用 docker exec 命令,例如:

docker exec -it 802 bash #802为容器id

从容器(Container)中退出(exit)

假如从宿主机进入了启动的容器,退出容器需要使用exit指令,例如:

exit

删除(rm)容器(Container)

假如容器不用了,可执行删除操作,例如:

docker container rm 802 #802为容器id

其中,如果删除运行中的容器,需要添加 -f 参数执行强制删除,例如:

docker container rm -f 802 #802为容器id

清理所有处于终止状态容器,例如:

docker container prune

说明,执行完这个指令以后,可以通过docker ps -a 再查看容器,看看是否有删除.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值