1.概念
容器化引擎,新型虚拟机,可以快速搭建环境;
docker搭建的软件叫容器,容器具有隔离性。
2.好处
3.组成
- 镜像(Image):软件集合包
- 容器(Container):软件,通过镜像安装后,对其进行启动、停止、删除等
- 网络(NetWork):容器就有对应的虚拟机,有自己的ip和port
- 数据卷(Data Volumes):数据卷,虚拟机所使用的磁盘
1.下载:curl -sSL https://get.daocloud.io/docker | sh
2.验证安装:docker version
3.操作docker
- 启动:
systemctl start docker- 停止:
systemctl stop docker- 重启:
systemctl restart docker- 状态:
systemctl status docker
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://registry.docker-cn.com"]}docker images:查看本地镜像⽂件docker search 镜像名称:在镜像仓库搜索对应的镜像是否存在docker pull 镜像名称:版本号:下载镜像docker run params: 创建并运⾏容器,如果镜像不存在,会下载镜像,创建容器,运⾏容器例子: docker run -d --name tomcat8081 -p 8081:8080 tomcat:9.0.65
| 参数 | 含义 |
|---|---|
| d | 后台运⾏,不会阻塞⻚⾯ |
| name | 容器名称(唯⼀) |
| p | 设置端⼝号,语法格式:-p 外界访问端⼝:软件本身端⼝(固定) |
| v | 设置数据卷,语法格式:-v Linux服务器的路径地址:软件默认的地址 |
docker ps:查看运行的容器docker ps -a:查看安装的容器docker start 容器名/id:启动容器docker restart 容器名/id:停止容器docker stop 容器名/id:重启容器docker rm 容器名/id:删除容器,(容器需要先停止)docker rmi 镜像名:版本号:删除镜像docker inspect 容器名:查看容器详细信息docker exec it 容器名 bash:进入到容器内部docker logs 容器名:查看容器日志mkdir -p /docker/tomcat/webapps8081docker run -d --name tomcat8081 -p 8081:8080 -v /docker/tomcat/webapps8081:/usr/local/tomcat/webapps/ tomcat:9.0.65mkdir -p /docker/tomcat/webapps8081/ROOT,发布war包到ROOT同级路径http://ip:8081/,如果不能访问,请检查防⽕墙或安全组,开放8081docker run -d --name mysql3307 -e MYSQL_ROOT_PASSWORD=zzjava -p 3307:3306 mysql:5.71.介绍
Docker-Compose:容器编排软件,是⽤于定义和运⾏多容器 Docker 应⽤程序的⼯具。
通过 Docker-Compose 可以使用yml文件来配置应用所需要的容器。
2.安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose- $(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composesudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-composedocker-compose -version3.工作步骤
通过yaml⽂件(有⾃⼰的语法格式),然后借助Docker-Compose实现创建
⼀次性可以创建多个容器
4.搭建Tomcat
1.创建文件夹
mkdir -p /docker/tomcat/webapps8081
mkdir -p /docker/tomcat/webapps8082
mkdir -p /docker/tomcat/webapps8083
2.编写dockerFile文件
vim /usr/local/tomcat.yml
version: "3.1"
services:
tomcat1: #服务名称,不是容器名,只是在文件中方便观看是按个服务
restart: always # 代表只要docker启动, 就会自动启动这个容器 相当于-restart参数
image: tomcat:9.0.65 #依赖的镜像
container_name: tomcat8082 # 容器名称 相当于 --name参数
ports:
- 8082:8080 #映射端口,可以指定多个,用多个-来写
environment:
TZ: Asia/Shanghai #指定时区
volumes:
- /docker/tomcat/webapp8082/:/usr/local/tomcat/webapps #挂载数据卷
tomcat2: #服务名称,不是容器名,只是在文件中方便观看是按个服务
restart: always # 代表只要docker启动, 就会自动启动这个容器 相当于-restart参数
image: tomcat:9.0.65 #依赖的镜像
container_name: tomcat8083 # 容器名称 相当于 --name参数
ports:
- 8083:8080 #映射端口,可以指定多个,用多个-来写
environment:
TZ: Asia/Shanghai #指定时区
volumes:
- /docker/tomcat/webapp8083/:/usr/local/tomcat/webapps #挂载数据卷
3.执行命令,创建容器
docker-compose -f /usr/local/tomcat.yml up -d
4.查看
docker ps
5.搭建MySQL
1.编写dockerfile⽂件
vim /usr/local/mysql.yml
version: '3.1'
services:
mysql:
container_name: "mysql3308"
environment:
MYSQL_ROOT_PASSWORD: "123456"
image: "mysql:5.7"
restart: always
ports:
- 3308:3306
volumes:
- "/var/lib/mysql:/home/ubuntu/docker/mysql/db"
- "/etc/mysql:/home/ubuntu/docker/mysql/conf"
- "/var/log/mysql:/home/ubuntu/docker/mysql/log"
...
2.执⾏命令,创建容器
docker-compose -f /usr/local/mysql.yml up -d
3.查看
dockerv ps