一、简介
Docker是一个开源的应用容器引擎,基于go语言并遵从Apache2.0协议开源。
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置;将镜像发布出去,其他使用者可以直接使用这个镜像。
运行中的这个镜像称为容器,容器启动是非常快速的。
二、Docker核心概念
docker镜像(Images):Docker镜像是用于创建Docker容器的模板。
docker容器(Container):容器是独立运行的一个或一组应用。
docker客户端(client):客户端通过命令行或者其他工具使用Docker API(https://docs.docker.com/reference/api/docker_remote_api)与Docker的守护进程通信
docker主机(Host):一个物理或者虚拟的机器用于执行Docker守护进程和容器。
docker仓库(Registry):Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。
docker hub(https://hub.docker.com)提供了庞大的镜像集合供使用。
使用docker的步骤:
1)安装docker。
2)去docker仓库找到软件对应的镜像。
3)使用docker运行镜像,这个镜像就会生成一个docker容器。
4)对容器的启动停止就是对软件的启动停止。
三、安装docker
1、检查centos内核版本
uname -r
2、安装docker
yum install docker
3、启动docker
systemctl start docker
查看版本号
docker -v
4、设置docker开机启动
systemctl enable docker
国内docker镜像
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://00b257d9.m.daocloud.io
docker-compose 安装
yum -y install epel-release
yum install python-pip
pip install --upgrade pip
pip install docker-compose --ignore-installed
四、docker镜像操作
1、检索,从docker仓库上检索镜像的详情。
docker search
2、拉取,到docker仓库上拉取docker镜像,tag表示标签,可选。默认latest
docker pull 镜像名:tag
3、列表,查看所有本地镜像
docker images
4、删除,删除指定的本地镜像
docker rmi image-id
五、Docker容器操作
软件镜像->运行镜像->产生一个容器(正在运行的软件);
1、搜索镜像
docker search tomcat
2、拉取镜像
docker pull tomcat
3、根据镜像启动容器
docker run --name mytomcat -d tomcat:latest
4、查看正在运行的容器
docker ps
5、停止运行中的容器
docker stop 容器ID/容器name
6、查看所有容器
docker ps -a
7、启动容器
docker start 容器ID
8、删除指定容器(需要先把容器先停止)
docker rm 容器ID
9、启动一个做了端口映射的tomcat
docker run -d -name mytomcat -p 8080:8080 tomcat
-d 后台运行
-p 将主机的一个端口映射到容器的一个端口
10、查看容器日志
docker logs 容器id
11、更多命令
https://docs.docker.com/engine/reference/commandline/docker/
操作 | 命令 | 说明 |
运行 | docker run --name container-name -d image-name eg: docker run --name myredis -d redis | --name:自定义容器名 -d:后台运行 image-name:指定镜像模板 |
列表 | docker ps (查看运行中的容器) | 加上 -a ;可以查看所有容器 |
停止 | docker stop container-name/container-id | 停止当前运行的容器 |
启动 | docker start container-name/container-id | 启动容器 |
删除 | docker -rm comtainer-id | 删除指定容器 |
端口映射 | docker run -p host-port:contaner-port --name container-name -d image-name eg:docker run -d -p 6379:6379 --name myredis docker.io/redis | -p:主机端口(映射到)容器内部端口 |
容器日志 | docker logs container-name/container-id |