8lovelife's life
0%

简单记录下如何构建docker image

Docker Build Usage

  1. dcoker build 命令将构建用到的内容发送给docker daemon,依次执行Dockerfile中的命令(每执行一行指令将会提交a new layer),执行成功image构建完成
  2. 构建docker image时,应该选择一个属于构建相关的目录(构建镜像所需内容),将会减少不必要的内容到docker daemon的传输从而加速构建
  3. 指定Dockerfile构建,docker build -t 8lovelife/activemq:1.0 -f /home/dmz/temp/Dockerfile .

Dockerfile中相关指令

RUN

RUN用于在当前镜像之上a new layer执行所需命令,执行后结果将被提交并可被后续指令使用

  • SHELLFORM:RUN <COMMAND>,linux 中默认以/bin/sh -c 执行,windows默认为cmd /s /c
  • EXECFORM:RUN ["executable","param1","parma2"],这种形式并不会执行命令shell。如RUN ["echo","$DMZ"]并不会输出解析后的变量DMZ,而RUN ["sh","-c","echo $DMZ"]可以解析变量DMZ(最终镜像中的系统变量)
  • EXECFORM将以JSON Array形式解析,所以参数需要双引号且相关符号需要转译如反斜杠,如:RUN ["C:\\windows\\system32"]

CMD

CMD用于容器执行的默认行为(同样能够使容器以可执行的形式运行),非必须存在。若在Dockerfile出现多次,只有最后一次会有效

  • CMD ["executable","param1","param2"] EXECFORM
  • CMD ["params1","param2"] , 作为ENTRYPOINT的默认参数
  • CMD command param1 param2 SHELLFORM
阅读全文 »

简单记录下我在开发过程中,如何快速构建调试环境

RedisService

  • 下载Redis image
1
docker pull redis
  • 启动Redis
1
2
3
4
docker run --restart=always -d -ti --name redisService \
-v /home/core/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /home/core/redis/data:/data -p 16379:6379 redis \
redis-server /usr/local/etc/redis/redis.conf
  • 登录Redis
1
docker exec -it redisService redis-cli --raw -a redis

MysqlService

  • 下载Mysql image
1
docker pull mysql
  • 启动Mysql
1
2
3
4
docker run --restart=always -it --name mysqlService \
-v /home/core/mysql/data/:/var/lib/mysql \
-v /home/core/mysql/conf.d:/etc/mysql/conf.d \
-p 13306:3306 -e MYSQL\_ROOT\_PASSWORD=12345 -d mysql
阅读全文 »

简单记录下我在IntelliJ IDEA中如何使用Docker

Intellij Idea 配置Docker

Docker :Docker是目前比较流行的容器,帮你管理应用服务 —— Docker官网

下载Docker插件

这里写图片描述

启动Docker Daemon

启用TCP连接:
sudo docker daemon -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock

Certificates

将Docker登录证书拷贝到本地,准备连接

这里写图片描述

阅读全文 »