linux中docker及docker-compose使用方法
本篇文章主要分享学习docker用到的相关知识
docker 安装(npm方式)
npm i docker -g
docker-compose 安装(npm方式)
npm i docker-compose -g
Dockerfile 配置
此处是一个.net core项目的Dockerfile配置内容
新建一个Dockerfile文件,编辑内容如下
FROM mcr.microsoft.com/dotnet/core/aspnet:2.1 #项目运行时需引用镜像 可从dockerhub搜索
EXPOSE 9401 #指定项目运行端口
WORKDIR /app #指定容器内项目运行目录
COPY . /app #将当前目录下的文件copy至容器内项目运行目录
ENTRYPOINT ["dotnet", "helloworld.dll"] #项目启动命令
docker 镜像打包及容器运行
此处编写了一个sh文件
#!/bin/bash
nowtime=$(date "+%Y%m%d%H%M%S") #此处以时间为版本,用于留存镜像版本,否则会覆盖
docker build -t helloworld:$nowtime . #镜像打包命令
docker stop helloworld_con #停止运行中的容器
docker rm helloworld_con #移除容器
docker run \ #运行容器
--name helloworld_con -d \ #容器名称
--link mysql \ #容器间通信,此处连接mysql数据库容器
--network test_default \ #指定容器网络
--restart=always \ #自动启动
-p 9401:9401 \ #映射端口 本地端口:容器内端口
helloworld:$nowtime #指定镜像及其版本
直接运行sh文件
bash dockerbuild.sh
也可以不写sh文件直接执行命令
镜像打包,在Dockerfile文件所在目录执行:
docker build -t helloworld:1.0
容器运行:
docker run --name helloworld_con -d --link mysql --network test_default --restart=always -p 9401:9401 helloworld:1.0
docker-compose 配置及命令
下面是一个开源工作流系统flowable的compose配置
version: '1'
services:
flowable-ui:
image: flowable/flowable-ui:6.6.0 #dockerhub搜到的镜像
container_name: flowable-ui #指定容器名
ports:
- "8064:8080" #端口映射
restart: always
environment: #运行参数
- SERVER_PORT=8080
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_URL=jdbc:mysql://ip:port/database
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=123456
volumes: #挂在jar包 本地目录:容器内目录
- ./mysql-connector-java-5.1.49.jar:/app/WEB-INF/lib/mysql-connector-java-5.1.49.jar
compose执行命令
docker-compose up -d