Docker概述
Docker官网(传送门)对Docker其实已经定义的非常清楚了:
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.
一个容器是一个标准的软件单元,这个容器打包了软件的代码和所有依赖,这样这个软件在不同的计算机环境中就能把快速、可靠的运行。一个Docker容器镜像是一个轻量级、脱机、可执行的软件包,这个软件包涵盖了该软件一切运行所需要的东西:代码、运行时、系统工具、系统库和设置
核心概念
- Docker主机 Host 安装了Docker程序的机器(Docker直接安装在操作系统之上)
- Docker客户端 Client 对Docker进行操作的命令行或者其他工具
- Docker仓库 Registry 用来保存各种打包好的软件镜像
Docker仓库主要有Docker Hub(传送门),它提供了庞大的镜像集合以供使用,除此之外自己也可以搭建私人Docker仓库
- Docker容器 Container :容器是独立运行的一个或一组应用。
使用Docker的步骤
- 安装Docker
- 去Docker仓库找到这个软件对应的镜像
- 使用Docker运行这个镜像,这个镜像就会生成一个Docker容器
- 对容器的启动停止就是对软件的启动停止
CentOS下7使用Docker
Docker安装
yum install docker
出现
Total download size: 28 M Is this ok [y/d/N]: y
输入y执行安装
当出现Complete说明安装成功
启动Docker
systemctl start docker
使用
docker -v
查看docker版本号,正确显示版本号的话说明启动成功
停止Docker
systemctl stop docker
设置Docker开机启动
systemctl enable docker
常用操作
镜像操作
操作 | 命令 | 举例 | 说明 |
---|---|---|---|
检索 | docker search 关键字 | docker search redis | |
拉取 | docker pull 镜像名:tag | docker pull docker.io/mysql:latest | :tag 是可选的,一般是软件的版本号,可以在Docker Hub查询,缺省为latest |
列表 | docker images | 查看所有本地镜像 | |
删除 | docker rmi image-id | docker rmi 0d64f46acfd1 | 删除指定的本地镜像,image-id可通过docker images 查询得到 |
容器操作
- 查询Tomcat的Docker镜像
docker search tomcat
- 拉取Tomcat的Docker镜像
docker pull docker.io/tomcat:latest
容器操作
操作 | 命令 | 举例 | 说明 |
---|---|---|---|
运行 | docker run --name container_name -d image_name | docker run --name myredis -d redis | -name 自定义容器名-d 后台运行image_name 指定镜像模板 |
列表 | docker ps | 查看运行中的容器,加上-a 可以查看所有容器s | |
停止 | docker stop container_name/container_id | 启动容器 | |
删除 | docker rm container_id | 删除指定容器 | |
端口映射 | -p 6379:6379 | docker run -d -p 6379:6379 | -p 主机端口映射到容器内部的端口 |
容器日志 | docker logs container_name/container_id |
更多命令:https://docs.docker.com/engine/reference/commandline/docker/
将宿主机的端口号和Docker端口号进行映射,这样外部程序才能通过宿主机的端口号访问Docker容器中的程序