Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
运行中的这个镜像称为容器,容器启动是非常快速的。
1、核心概念
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
2、Docker的安装(Linux)
1、Docker要求CentOS系统的内核版本高于3.10
查看CentOS内核版本的命令
uname -r
如果内核版本低于3.10,升级软件包及内核
yum update
2、安装Docker
1、安装docker
yum install docker
2、输入y确认安装
3、启动docker
systemctl start docker
4、查看docker的版本号确认是否启动成功
docker -v
5、将docker设置成开机启动
systemctl enable docker
6、停止docker
systemctl stop docker
3、Docker的常用操作
1、镜像操作
操作 | 命令 | 说明 |
---|---|---|
检索 | docker search 关键字 eg:docker search mysql | 在docker hub上检索镜像的详细信息 docker hub链接:https://hub.docker.com/ |
拉取 | docker pull 镜像名:tag | tag是可选的,tag表示标签,多为软件按的版本,默认是latest |
列表 | docker images | 查看所有的本地镜像 |
删除 | docker rmi image-id | 删除指定的本地镜像,image-id是在本地镜像的唯一标识,可用docker images查看 |
2、镜像操作
软件镜像—>运行镜像—>产生一个容器(也就是在运行的软件)
操作 | 命令 | 说明 |
---|---|---|
运行 | docker run --name container-name -d image-name eg:docker run --name myredis -d redis:latest (最后的参数有标签最好加上标签,要是latest可以不加) | –name:自定义容器名 -d:后台运行 image-name:指定镜像模板 (–nam可以省略不用起别名启动也可以,此时系统回自动加上一个别名) |
列表 | docker ps (查看运行中的容器) | 加上 -a 可以查看所有的容器 |
停止 | docker stop container-name/container-id | 停止当前运行的容器 |
启动 | docker start container-name/container-id | 启动容器 |
删除 | docker rm container-id | 删除指定容器 |
端口映射 | -p 6379:6379 eg:docker run -d -p 6379:6379 --name myredis docker.io/redis | -p:主机端口(映射到)容器内部的端口 |
容器日志 | docker logs container-name/container-id |
点击查看更多命令
步骤:(下面以tomcat为例)
1、操作镜像
docker search tomcat
2、下载镜像(不加 :tag 默认下载的是latest最新版本的)
docker pull tomcat
3、根据镜像启动容器
docker run --name mytomcat -d tomcat:latest
4、查看运行中的容器
docker ps
5、停止运行中的容器(container-id/container-name)
docker stop mytomcat
6、查看所有的容器,包括没启动的和启动的
docker ps -a
7、启动容器(container-name/container-id)
docker start mytomcat
8、删除容器(前提是容器必须是停止状态,记得用docker ps 查看container-id)
docker rm container-id
9、启动一个做了端口映射的tomcat
docker run -d -p 8888:8080 tomcat
-d:后台运行
-p:将主机端口映射到容器的端口 主机端口:内部端口
(进行到这里就可以在主机上面用8888端口来访问tomcat主页,但是有很大一部分原因是关闭了Linux的防火墙)
10、可以查看linux的防火墙状态
service firewalld status
service firewalld stop 关闭防火墙
11、查看容器的日志
docker logs container-id/container-name
12、一个镜像可以启动多个容器,下面两个端口子啊主机端都能访问,并且每个容器都是独立的互不干扰的
docker run -d -p 8887:8080 tomcat
docker run -d -p 8889:8080 tomcat
13、这里在添加一个创建myslq5.5的例子
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5
(这个例子是创建一个带有映射端口的,mysql5.5版本的容器,并且指定了在进行数据库链接的时候需要输入的密码,上面的顺序不能错奥)
小提示:
在搜索镜像的时候,最好是去docker hub上面搜索需要的镜像,然后根据自己的需求进行下载,在tag处选择合适的版本,里面也会有解释启动和运行的命令。