Docker在我刚出来实习的时候就有接触到,那会只是将公司里制作好的包去客户那边进行简单部署,只知道Docker是个容器可以在里面安装运行软件,其他一概不知。今天学习的时候刚好遇到Docker的内容,特此记录一下。
Docker是什么
Docker 是一个开源的应用容器引擎。它支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
为了更加形象的说明,我们将Docker和Windows镜像做个类比。我们一般自己安装系统使用的多是镜像文件(.gho或.iso),安装完毕我们会发现系统中已经帮我们装好了一些常用的软件及一些配置。这是在制作镜像文件的时候,制作者将这些常用的软件制作进去了,而我们对镜像文件进行还原(安装操作系统)时,这些软件就会包含在内。Docker中的镜像和windows镜像系统的常用软件类似。
Docker和windows镜像类比
Docker中可以包含多个镜像,镜像一旦运行起来就变成了容器,一个镜像可以运行多次对应多个容器。这里可以看到,镜像类似于编程语言中类的概念,而容器类似于对象。
核心概念
Docker客户端(Client):Docker 客户端通过命令行或者其他工具使用 Docker API 和Docker主机进行交互。
Docker主机(Host):安装了Docker程序的机器。
Docker仓库(Registry):用来保存镜像,类似于代码仓库。
Docker镜像(Images):是用于创建 Docker 容器的模板,放在Docker仓库当中。
Docker容器(Container):独立运行的一个或一组应用。
Docker架构图
Docker仓库分为公共的和私人的,公共的Docker仓库可以访问https://hub.docker.com进行查看,类似于Maven的公共仓库。
Docker安装
推荐使用Centos,可以直接使用yum,安装起来很方便。
1、检查内核版本,必须是3.10及以上 uname -r2、安装docker yum install docker3、输入y确认安装4、启动docker [root@localhost ~]# service start docker[root@localhost ~]# docker -vDocker version 1.13.1, build 94f4240/1.13.15、开机启动docker [root@localhost ~]# systemctl enable dockerCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.6、停止docker service stop docker
启动Docker服务
[root@localhost ~]# service docker start --或者systemctl docker start
关闭Docker服务
[root@localhost ~]# service docker stop --或者systemctl docker stop
使用Docker的步骤:
1)、安装Docker
2)、去Docker仓库找到这个软件对应的镜像;
3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;
4)、对容器的启动停止就是对软件的启动停止;
Docker常见操作
1)、镜像操作
操作 | 命令 | 说明 |
---|---|---|
检索 | docker search 关键字 eg:docker search redis | 我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。 |
拉取 | docker pull 镜像名:tag | :tag是可选的,tag表示标签,多为软件的版本,默认是latest |
列表 | docker images | 查看所有本地镜像 |
删除 | docker rmi image-id | 删除指定的本地镜像 |
构建 | docker build | 构建镜像,通常情况下都是通过Dockerfile文件来构建镜像 |
2)、容器操作
1、搜索镜像 [root@localhost ~]# docker search tomcat2、拉取镜像 [root@localhost ~]# docker pull tomcat3、根据镜像启动容器 docker run --name mytomcat -d tomcat:latest4、docker ps 查看运行中的容器5、 停止运行中的容器 docker stop 容器的id6、查看所有的容器 docker ps -a7、启动容器 docker start 容器id8、删除一个容器 docker rm 容器id9、启动一个做了端口映射的tomcat [root@localhost ~]# docker run -d -p 8888:8080 tomcat-d:后台运行 -p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口10、查看容器的日志 docker logs container-name/container-id 更多命令参看https://docs.docker.com/engine/reference/commandline/docker/可以参考每一个镜像的文档
注意,在Docker中启动一个应用时,一定要做端口映射。不然客户端是无法访问到主机中的Docker容器。
Docker中安装软件
Docker 安装 Nginx
Docker 安装 MySQL
Docker 安装 Tomcat
Docker 安装 Redis
Dockerfile
Dockerfile是一个普通的文本文件,里面包含了许多可以在命令行接口上执行的用来构建镜像的相关指令,我们通过docker build指令就可以读取Dockerfile文件中的指令并执行自动化镜像构建。
一般情况下,Dockerfile文件可分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的执行指令。
Dockerfile常用指令
作者:Coding小聪
链接:https://www.jianshu.com/p/dc2e213ffe95