Docker是一个高级容器引擎,开发者可以将自己的已经安装好的并且配置好的软件通过Docker“打包”(不知道这个词用的准不准确)成一个镜像文件,然后其他人就可以在安装Docker的机器上运行这个镜像文件,无需安装配置软件就可运行。
核心概念:
1. docker镜像(images):Docker镜像是用于创建Docker容器的模板;
2. docker容器(container):镜像启动后的实例就是一个容器,容器是独立运行的一个或一组应用;
3. docker客户端(client):连接docker主机进行操作,客户端用过命令行或其他工具使用Docker;
4. docker主机(host):安装了Docker的机器,直接安装在操作系统之上。能够运行docker的守护进程和容器;
5. docker仓库(registry):用来保存各种打包好的软件镜像;
使用步骤:
1. 安装Docker;
2. 去Docker仓库获取软件的镜像;
3. 使用Docker运行这个镜像,生成了一个对应的Docker容器;
4. 对容器的启动停止就是对软件的启动停止;
安装步骤(我的是红帽7):
1. 检查内核版本,必须是3.10及以上版本
使用命令 uname -r
2. 安装docker
yum install docker
3. 运行docker
systemctl start docker
4. 查看docker版本
docker -v
5. 设置成开机启动
systemctl enable docker
6. 停止docker
systemctl stop docker
Docker常用命令:
1. docker search :到公共仓库查询镜像,例如:
docker search mysql
如上图所示查询redis的docker镜像软件,official表示官方提供,automated表示已经自动配置好了;
2. docker pull 镜像名:tag:拉取镜像(tag可选,多为软件版本,默认是latest),若要加tag版本,可
以去docker hub网站查询有哪些版本;
3. docker images:查看本地镜像列表;
4. docker rmi image-id:删除本地镜像
5. docker run --name container-name -d image-name :运行镜像,生成容器
-name:自定义容器名
-d:以后台方式运行
注意:
如果镜像的tag不是默认的latest,则需要在image-name后面加 :tag;
该命令运行镜像文件后就会生成对应的软件容器,即使停止容器,容器本身还会存在,只是处于关闭状态,因此,一般运行一次就可以了,以后都是对容器的启动与停止操作;
以上命令生成的容器在外部是访问不到的,因为端口号有效于docker容器内部,需要做端口映射,可以使用参数 -p外部端口:docker容器端口,例如启动redis,我想在外部用6380访问,redis默认是6379,因此可以写成: -p 6380:6379 ;
完整命令:docker run --name docker-redis -d -p 6380:6379 docker.io/redis
6. docker ps:查看正在运行的容器列表;
7. docker ps -a:查看所有容器,包括运行中和已经退出的;
8. docker stop container-id(container-name):停止运行中的容器,输入可以是容器ID或容器名;
9. docker start container-id(container-name):启动容器,输入可以是容器ID或容器名;
10. docker rm container-id:删除容器(容器必须停止后再删除);
11. docker logs container-id:查看容器日志;