在开始运行Docker程序时,我们需要理解Docker的组成,Docker由三部分组成:
-
仓库(repository):仓库类似于Git中的仓库,Git仓库用于存放用户代码,而Docker仓库则用来存放Docker镜像。由于Docker是国外的东东,访问Docker仓库(Docker Hub)非常慢,因此国内IT巨头搭建了Docker国内镜像,如下:
-
阿里云Docker仓库
-
网易云Docker仓库
-
-
镜像(image):镜像是容器的基石,容器基于镜像启动,镜像就像是容器的源代码,保存了用于容器启动的各种条件。
-
容器(container):容器是docker的执行单元,容器是镜像的实例。
仓库配置
由于Docker是国外的,Docker默认将访问国外的Docker Hub仓库;因为国内访问Docker Hub仓库的速度太慢了,于是国内IT巨头公司建立了镜像仓库加速器,下面将使用阿里云的进行加速服务。
(1)登录到阿里云,如下图:
(2)进入到控制台,找到弹性计算,点击“容器镜像服务”。如下图:
(3)点击“镜像加速器”,此时就有怎样去配置加速器的方法了。如下图:
(4)进入到 /etc/docker 目录,创建 daemon.json 文件,且添加如下配置:
{ "registry-mirrors": ["https://hotw1jil.mirror.aliyuncs.com"] }
(5)重新加载配置文件,如下:
[root@localhost /]# sudo systemctl daemon-reload
(6)重启docker服务,如下:
[root@localhost /]# sudo systemctl restart docker
到这里仓库就配置好了。
运行Hello World
注意,如果你是第一次运行Hello World,Docker会先到本地查找image镜像,如果镜像在本地不存在,Docker会到远程仓库去下载image镜像。然后运行镜像,如下:
[root@localhost /]# docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
使用 docker images 查看本地仓库有哪些镜像,如下:
本地仓库有三个镜像,分别为“redis”、“mysql”、“hello-world”。
入门知识
CentOS7安装Docker - 在 CentOS7 中安装 Docker
Docker Hello World - 演示使用 docker pull 从 Docker hub 上面拉取 Hello world 镜像,然后使用 docker run 运行镜像
Docker数据卷容器 - 介绍在 docker run 命令中使用“-v”和“--volumes-from”参数指定容器卷
使用Dockerfile创建数据卷 - 介绍在 Dockerfile 文件中使用 VOLUME 命令创建数据卷
Docker容器数据卷 - 怎样通过命令和Dockerfile文件挂载数据卷,实现Docker容器之间数据共享
Docker常用命令
Docker命令之帮助命令 - 介绍Docker的帮助命令 docker info、docker help 和 docker version
Docker images命令 - 查看当前Docker上面存在的所有镜像列表
Docker rmi命令 - 删除指定的镜像
Docker tag命令 - 根据已有的镜像,新建一个TAG
Docker build命令 - 根据 Dockerfile 构建镜像
Docker history命令 - 查看指定镜像的历史信息
Docker save命令 - 将镜像使用 tag.gz 格式保存到宿主主机
Docker load命令 - 将保存在宿主主机的 tag.gz 文件导入到 Docker 中
Docker import命令 - 导入镜像
Docker run命令 - 根据指定的 Docker 镜像运行一个容器
Docker pull命令 - 从 Docker Hub 中下载一个镜像到本地 Docker
Docker search命令 - 从 Docker Hub 搜索镜像
Docker rm命令 - 删除指定的容器
Docker start命令 - 启动一个或多个已经停止的容器
Docker restart命令 - 重启一个或多个容器
Docker stop命令 - 停止一个或多个容器
Docker kill命令 - 强制停止一个或多个容器
Docker exec命令 - 在宿主主机发送一条命令到容器内部进行执行,然后返回结果给宿主主机
Dockerfile入门
Dockerfile之FROM - 指定 Dockerfile 的基础镜像,即自己的镜像继承自哪个镜像
Dockerfile之MAINTAINER - 给 Dockerfile 指定作者信息和邮箱地址
Dockerfile之ENV - 设置环境变量
Dockerfile之RUN - 运行一条指令
Dockerfile之ADD - 添加一个文件到镜像内,如果镜像时压缩文件将自动解压
Dockerfile之COPY - 拷贝文件到镜像内
Dockerfile之EXPOSE - 暴露某个端口,供宿主主机通过 -p 或 -P 进行映射,然后即可访问Docker服务
Dockerfile之WORKDIR - 设置当前工作目录
Dockerfile之VOLUME - 指令可以指定一个或多个目录作为容器的数据卷
Dockerfile之CMD - 设置容器启动时执行的操作
Dockerfile之ENTRYPOINT - 设置容器启动时执行的操作
Dockerfile之ONBUILD - 只有当以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行
Dockerfile实例
Dockerfile实例自定义CentOS - 自定义CentOS镜像
Dockerfile实例自定义TOMCAT - 自定义 Tomcat