通过brew安装docker以及docker的使用

docker的介绍,里面包括了3个基本概念

1.1 docker主要由镜像和容器构成

镜像(Image):docker镜像好比一个模板,相当于一个文件系统

容器(Container):容器需要通过镜像来创建。镜像和容器就像是面向对象中的类和实例一样。容器可以被创建/启动/停止/删除等

仓库(Repository):仓库就是存放镜像的地方,分为私有仓库和公有仓库。类似git

1.2 docker的运行原理

docker是一个Client-Server结构的系统,docker的守护进程运行在主机上,通过socket从客户端访问。dockerServer接收到docker-Client的指令,就会执行这个命令。

 

一. docker的安装

 

1.1 homebrew的cask应支持Docker for Mac,所以可以直接安装  brew cask install docker

1.2 也可以直接到官网下载,https://download.docker.com/mac/stable/Docker.dmg

1.3 docker的参考文档:https://docs.docker.com

1.4 dockerhub查找镜像源地址:https://hub.docker.com


二. docker的使用

 

1.1 查看版本

docker --version

docker-compose --version 

docker-machine --version

1.2 查看docker系统信息(包括镜像和容器的数量等)

docker info

1.3 帮助命令

docker help

1.4 查看 cpu的状况

docker stats


三. docker的基本命令

镜像相关命令:

1.1 查看镜像可用版本(nginx为例)

docker search nginx

1.2 下载一个镜像

docker pull nginx:latest(:后面跟镜像版本)

1.3 运行一个nginx服务器

docker run -d -p 81:80 --name webserver nginx

可选项:

--name webserver :容器名称,用来区分容器

-p 81:80 :端口进行映射,将本地的81端口映射到容器内部的80端口

-v ~/nginx/html:/usr/share/nginx/html 数据卷挂载ro/rw,将主机项目中的目录挂载到容器的目录下,默认rw只能在宿主机外改变,容器内部不能改变

-d:设置容器中在后台一直运行

-it:使用交互方式运行,进入容器查看内容

-P:随机端口

-e:环境配置设置

注意:后台启动运行,必须要有一个前台进程,docker发现没有应用,就会自动停止

重点:数据卷挂载分为具名/匿名/指定路径挂载,容器数据卷挂载可以实现数据共享,容器的持久化和同步操作,可以使用docker volume 查看卷的情况,可以使用volumes-from实现多个容器之间的数据共享。

1.4 停止nginx服务

docker stop webserver(容器ID)

1.5 删除nginx服务

docker rm webserver

1.6 启动/重启nginx服务

docker start/restart webserver

1.7 列出所有镜像(列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间)

docker images ls

说明:

REPOSITORY 镜像的仓库源

TAG 镜像的标签

IMAGE ID 镜像的id

CREATED 镜像的创建时间

SIZE 镜像的大小

可选项:

-a:列出所有的镜像

-q:只显示镜像的id

注意:镜像ID是唯一标识,一个镜像可以对应多个标签

1.8 查看镜像、容器、数据卷所占用的空间

docker system df

1.9 删除镜像

指定镜像:docker rmi [镜像名称/镜像短ID/镜像长ID/镜像摘要]

多个镜像:docker rmi 镜像ID 镜像ID 镜像ID

全部镜像:docker rmi $(docker images -aq)

2.0 删除docker images ls 命令配合 删除所有仓库名为redis的镜像

docker  rmi $(docker images ls -q redis)

2.1 查看镜像运行记录

docker history 镜像id

 

容器相关命令

1.1 列出容器 

docker ps 

可选项:

-a:显示所有的容器,包括未运行的

-l:显示最近创建的容器

-n:列出最近创建的n个容器

-q:只显示容器的编号

1.2 进入容器

docker exec -it [容器名称] /bin/bash

docker atthch 容器id

区别:docker exec 进入容器后开启一个新的终端,可以在里面操作;docker attach 进入容器正在执行的终端,不会启动新的进程

1.3 退出容器

容器停止退回主机 exit 

容器不停止推出 ctrl+p+q 

1.4 删除容器

指定容器:docker rm [容器id]

多个容器:docker rm 容器id 容器id 容器id

所有容器:docker rm $(docker ps -aq)    docker ps -a -q|xargs docker rm

注意:不能删除正在运行的容器,要删除正在运行的容器需要加 -f 参数,docker rm -f 容器id

1.5 启动/重启容器

docker start/restart 容器id

1.6 停止/强制停止容器

docker stop/kill 容器id

1.7 查看容器日志

docker logs -f -t --tail 100 容器id 

--tail后面必须加参数条数

1.8 查看容器中的进程信息

docker top 容器id

1.9 查看容器的元数据(重要命令)

docker inspect 容器id

2.0 从容器上拷贝数据到主机上

docker cp 容器id:容器内路径 主机路径

 

四. Dockerfile的指令

 

FROM 基础镜像,一切从这里开始

MAINTAINER 镜像的作者 姓名<邮箱>

RUN 镜像构建需要运行的命令

ADD 步骤,添加内容

WORKDIR 镜像的工作目录

VOLUME 挂载的目录

EXPOST 端口配置

CMD 指定容器启动要运行的命令,只有最后一个会生效,可被替代

ENTRYPOINT 指定这个容器启动要运行的命令,可以追加命令

ONBUILD 当构建一个被继承的Dockerfile时会运行

COPY 类似ADD将我们文件拷贝到镜像中

ENV 构建的时候设置环境变量

 

以上部分内容参考b站up主讲解,地址放在这里大家可以自己去学习:https://www.bilibili.com/video/BV1og4y1q7M4

以上就是本次的全部内容!

posted @ 2020-03-24 11:00  静小妞  阅读(24354)  评论(0编辑  收藏  举报