1:要启动容器必须都先创建好镜像文件
C:\Users\dell>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
poi 1.0 22738bb31074 4 hours ago 105MB
redis latest 506734eb5e71 6 days ago 138MB
nginx latest eea7b3dcba7e 7 days ago 187MB
mysql 8.0 5761fe35fa53 13 days ago 577MB
openjdk 8-alpine a3562aa0b991 4 years ago 105MBC:\Users\dell>
2:docker -compse启动容器
version: '2'
services:compose-redis:image: redisports:- "6379:6379"restart: alwayscontainer_name: compose-redis
# command: redis-server --appendonly yesvolumes:- ./redis.conf:/etc/redis/redis.confcompose-mysql:image: mysql:8.0container_name: compose-mysqlenvironment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: rootports:- "3306:3306"volumes:- ./sql:/docker-entrypoint-initdb.d #./代表和docker-compose.yml同目录下- ./mysql/conf:/etc/mysql/mysql.conf.d- ./mysql/log:/var/log/mysql- ./mysql/data:/var/lib/mysqlcompose-nginx:image: nginxcontainer_name: compose-nginxrestart: alwaysdepends_on: #以后compose-poi启动后再启动该容器- compose-poiports:- "88:88"links:- compose-poivolumes:- ./dist:/home/hdxWeb #映射前端dist下的全部文件到nginx容器/home/hdxWeb目录下- ./nginx/nginx.conf:/etc/nginx/nginx.conf #映射配置nginx.conf文件设置,配置请求跳转到/home/hdxWeb目录下等- ./work/logs/nginx:/etc/nginx/logscompose-poi:restart: on-failurecontainer_name: compose-poiimage: poi:1.0depends_on: #depends_on 关键字用于定义服务之间的依赖关系。它指定了在启动服务之前需要启动的其他服务- compose-redis- compose-mysqllinks: #links 关键字用于链接服务之间的网络连接,允许一个服务能够访问另一个服务- compose-redis- compose-mysqlports:- "8088:8088"volumes: #应该使用瘦身部署jar方便更新- ./target/poi.jar ./app/- ./target/resources/ ./app/resources/- ./target/lib/ ./app/lib/
./target/poi.jar ./app/
表示宿主机docker-compose.yml当前目录下的/target/poi.jar文件挂载到容器默认目录app下(如果是通过命令docker run -d -p 8088:8088 -v ./target/poi.jar:./app/,这样启动容器有两个报错,第一个是这样必须写绝对路径,不能写相对路径,第二是文件指定必须挂载到指定文件,应该改成:命令docker run -d -p 8088:8088 -v G:/target/poi.jar:/test/app/ poi.tar)