其他分享
首页 > 其他分享> > erlang的一次docker部署尝试

erlang的一次docker部署尝试

作者:互联网

背景

最近需要在arm64和x86平台上,多个系统版本上部署,被环境问题折磨的焦头烂额。因为erlang本身是基于C语言的,基于不同的gcc环境编译的包不能很好的运行。docker用于解决开发生产环境一致性的问题,所有萌发用docker来解决erlang部署环境问题。

docker基础命令

## 获取镜像 erlang
docker pull erlang:20.3

## 查看所有镜像
docker images

## 创建docker容器
docker run -it -p 8124:8124 erlang:20.3 bash

## 退出容器
exit

## 查看容器列表
docker ps -a  或者 docker container ls

## 宿主到容器复制
docker cp /host/path  <containerId>:/file/path/within/container

## 容器到宿主复制
docker cp <containerId>:/file/path/within/container  /host/path

## 启动容器
docker start <containerId> 或者 docker container start <containerId>

## 停止容器
docker stop <containerId> 或者 docker container stop <containerId>

## 重启容器
docker restart <containerId> 或者 docker container restart <containerId>

## attach容器
docker attach <containerId>

## attach容器后退出
ctrl+p,ctrl+q

## 删除容器
docker rm -f <containerId>

## 容器内执行
docker exec -it [name] /bin/bash

容器内运行erlang

## 名称参数,设置容器名称为erl_test
--name erl_test

## 网络参数,需共享宿主网络
--net=host

## 目录挂载
--mount type=bind,source=/host/path/erl/release,target=/container/path/erl/release

## 后台执行
-d

## 重启规则
--restart=always

docker 运行erlang

## 服务名称
erl_md

## 打包工具
rebar3

## 服务后台启动 无返回结果,随即命令结束
bin/erl_md start

## 后台服务停止
bin/erl_md stop

## 服务console模式启动
bin/erl_md console

## 服务console模式停止
Ctrl+c
## erlang服务宿主目录  /root/erl_server/erl_md
## erlang服务容器目录 /erl_server/erl_md
## erlang服务名称 erl_test
## 镜像 erlang:20.3
docker run --name erl_test --restart=always --net=host --mount type=bind,source=/root/erl_server/erl_md,target=/erl_server/erl_md -itd erlang:20.3 /erl_server/erl_md/bin/erl_md console

标签:尝试,容器,md,##,erl,docker,erlang
来源: https://www.cnblogs.com/dacode/p/16643109.html