Docker
一、docker
1.概念
容器化引擎,新型虚拟机,可以快速搭建环境;
docker搭建的软件叫容器,容器具有隔离性。
2.好处
- 1.高效利用系统资源
- 2.更快速的启动时间
- 3.开发、测试、生产环境,一致的项目环境
- 4.持续交付和部署
3.组成
- 镜像(Image):软件集合包
- 容器(Container):软件,通过镜像安装后,对其进行启动、停止、删除等
- 网络(NetWork):容器就有对应的虚拟机,有自己的ip和port
- 数据卷(Data Volumes):数据卷,虚拟机所使用的磁盘
二、Centos安装Docker
1.安装
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
2.配置镜像加速器
- 设置加速地址:
vim /etc/docker/daemon.json
- 内容:
{"registry-mirrors": ["https://registry.docker-cn.com"]}
- 内容:
- 重新加载配置
- systemctl daemon-reload
- systemctl restart docker
三、Docker命令
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 容器名
:查看容器日志
四、搭建环境
1.搭建Tomcat
- 1.创建文件夹 :
mkdir -p /docker/tomcat/webapps8081
- 2.穿件并运行容器:
docker run -d --name tomcat8081 -p 8081:8080 -v /docker/tomcat/webapps8081:/usr/local/tomcat/webapps/ tomcat:9.0.65
- 3.设置web应用:
mkdir -p /docker/tomcat/webapps8081/ROOT
,发布war包到ROOT同级路径 - 4.访问测试:
http://ip:8081/
,如果不能访问,请检查防⽕墙或安全组,开放8081
2.搭建Mysql
- 1.创建并运行:
docker run -d --name mysql3307 -e MYSQL_ROOT_PASSWORD=zzjava -p 3307:3306 mysql:5.7
- 2.连接测试,用数据库连接工具
五、Docker-Compose
1.介绍
Docker-Compose:容器编排软件,是⽤于定义和运⾏多容器 Docker 应⽤程序的⼯具。
通过 Docker-Compose 可以使用yml文件来配置应用所需要的容器。
2.安装
- 1.下载:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose- $(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 2.授权:
sudo chmod +x /usr/local/bin/docker-compose
- 3.软连接:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 4.测试:
docker-compose -version
3.工作步骤
通过yaml⽂件(有⾃⼰的语法格式),然后借助Docker-Compose实现创建
⼀次性可以创建多个容器
- 1.创建容器对应的yaml⽂件(DockerFile⽂件),定义容器的信息
- 2.执⾏命令,加载yaml⽂件,通过⽂件内部的定义,实现容器的创建
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