1.Dockfile文件使用
创建一个Dockerfile文件,并指定自定义镜像信息
#Dockfile文件中常用内容:
from:指定当前自定义镜像依赖的环境
copy:将相对路径下的内容复制到自定义镜像中
workdir:声明镜像默认的工作目录
cmd:需要执行的命令(在workdir下执行,cmd可以写多个但只以最后一个为准)
例如:
from daocloud.io/library/tomcat:8.5.15-jre8
copy README.md /usr/local/tomcat/webapps
制作镜像命令:
docker build -t 镜像名称[:版本] 文件目录
2.Docker-Compse的使用
2.1下载Docker-Compose
下载地址:https://github.com/docker/compose
根据自己的系统下载对应的安装包,mac系统下载Darwin版本。
2.2安装Docker-Compose
将下载的文件放到/usr/local/bin目录下,修改文件权限为可执行文件,确认此路径添加到环境变量中。
mac系统环境变量文件为:~/.bash_profile
linux系统环境变量文件为:/etc/profile
运行命令:
docker-compose -v
可以看到Docker-Compose的版本号,本文使用的是1.24.1版本。
2.3使用Docker-Compose
docker-compse.yml文件举例,从daocloud获取mysql和tomcat镜像,并使用docker-compose运行 :
1 version: '3.1' #v1.24.1 对应 v3.1 2 services: #在本文件中,不要使用/tab 3 mysql: 4 restart: always 5 image: daocloud.io/library/mysql:5.7.4 6 container_name: mysql_compose 7 ports: 8 - 3307:3306 9 environment: 10 MYSQL_ROOT_PASSWORD: root #参数 -e 11 TimeZone: Asia/shanghai 12 volumes: 13 - /Users/yangasen/Desktop/mysql_vol/data:/var/lib/mysql #数据卷 -v 14 tomcat: #服务的名称 15 restart: always #只要docker启动,这个容器就一起启动 16 image: daocloud.io/library/tomcat:8.5.15-jre8 #指定镜像的路径 17 container_name: tomcat_compose #容器的名称 --name 18 ports: 19 - 8081:8080 #指定端口号的映射 -p 20 environment: 21 TZ: Asia/shanghai 22 volumes: 23 - /Users/yangasen/Desktop/tomcat_vol/webapps:/usr/local/tomcat/webapps 24 - /Users/yangasen/Desktop/tomcat_vol/logs:/usr/local/tomcat/logs
基于docker-compse.yml的命令:
启动:
docker-compose up -d
停止并删除容器:
docker-compose down
开启/关闭由docker-compose维护的容器:
docker-compose start|stop|restart
查看由docker-compse管理的容器:
docker-compose ps
查看日志:
docker-compose logs -f
3.Docker-Compose与Dokerfile文件配合使用
编写格式如下:
1 version: '3.1' #v1.24.1 对应 v3.1 2 services: 3 ssm: 4 restart: always 5 build: #指定Dockerfile 6 context: . 7 dockerfile: Dockerfile 8 image: ssm:1.0.1 9 container_name: ssm 10 port: 11 - 8082:8080 12 environment: 13 TZ: Asia/shanghai
此文件和Dockerfile文件放在一起,然后执行docker-compose即可制作自定义镜像并运行。
注意:可以直接启动基于docker-compose.yml以及Dockfile文件构建的自定义镜像。
docker-compse up - d
如果自定义镜像不存在,这个命令会先构建自定义镜像,再启动。
如果自定义镜像已经存在,这个命令不会重新构建镜像,会直接启动。
如果需要重新构建镜像,可以用如下命令:docker-compose build
或者在启动之前直接添加--build参数:docker-compose up - d -- build