当前位置:   article > 正文

docker-compose,dockerfile部署项目。_docker compose dockerfile

docker compose dockerfile

目录

安装docker,docker-compose

dockerfile编排和常用命令

制作docker镜像

docker-compose.yml的案例 :

IDEA连接服务器编写、上传DockerFile, docker-compose文件。

dockecompose的常用命令


安装docker,docker-compose

  1. //安装docker
  2. curl -sSL https://get.daocloud.io/docker | sh
  3. //安装docker-compose
  4. curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  5. // 给docker-compose添加可执行权限
  6. sudo chmod +x /usr/local/bin/docker-compose
  • Dockerfile常用的标签

ps: 所有命令必须大写。

dockerFile命令
命令格式案例作用
FROMFROM   <img:tag>

FROM    mysql:5.7.35 

FROM    java:8

表示需要依赖的镜像,必须放在第一行
EXPOSEEXPOSE  <post>

EXPOSE  8080

EXPOSE  8081

表示对外暴露的端口,可以使用多个EXPOSE 暴露多个端口
RUNRUN RUN  ["","",""]表示在docker build 制作镜像时候运行的命令
ADD

ADD   

<源路径>..<目标目录>

ADD  /root/demo.jar     /demo/test/demo.jar表示将源路径的文件复制到,镜像内目标目录下,如果源路径是下载URl,ADD命令会自动下载,完成后自动解压.tar.gz文件然后复制到镜像内目标目录。 
VOLUME

VOLUME 

       <容器内部目录>

VOLUME   /etc/conf表示指定容器内部的那些目录可以被外部挂载。
WORKDIR

WORKDIR 

        <工作目录>

WORKDIR  /demo/test使用该命令指定工作目录,Dockerfile 中其后的命令 RUN、CMD、ENTRYPOINT、ADD、COPY 等命令都会在该目录下执行
CMDCMD

CMD   ["java",

"-jar","demo.jar"]

在使用 docker run 命令启动容器时候运行的镜像,一般和ENTRYPOINT组合使用
ENTRYPOINTENTRYPOINTENTRYPOINT   ["java","-jar","demo.jar"]在使用 docker run 命令启动容器时候运行的镜像,一般和CMD组合使用
ENVENVENV  设置系统环境

后端案例:

  1. FROM java:8 #指定我们运行的服务需要依赖的镜像,一定要写在第一行。
  2. ADD jwc.jar /jwc.jar #将指定目录下的文件,拷贝到指定的目录下,
  3. EXPOSE 8080 #指定可以对外暴露的端口,可以使用该命令暴露多个
  4. #在使用docker run启动容器时运行该命令
  5. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/.urandom","-jar","/jwc.jar"]

前端案例:

  1. FROM nginx:1.21.3-perl #拉取一个nginx服务
  2. COPY dist/ /usr/share/nginx/html/ #将前端的dist文件拷贝到nginx的html目录下

这是nginx的默认配置文件,nginx默认会去/usr/share/nginx/html/目录下找前端页面,无其他需求不需要更改。

制作docker镜像

        如果使用docker-compose编排的话,不需要我们提前将dockefile文件制作镜像。因为docker-compose会根据我们的配置自动找到dockerfile文件为我们制作成镜像后再运行。

  1. //在dockerfile文件所在得文件,用命令制作镜像,后面的点的意思是Dockerfile所在的文件夹
  2. docker build -t <自定义镜像名> .
  3. //完成后使用docker images 命令查看你的镜像
  4. //接下来就可以使用docker run 命令运行了

docker-compose.yml的案例 :

  1. version: '3.0' #固定格式,表示docker-compose的版本号
  2. services: #固定格式,所有服务的入口
  3. #比如启动一个MySQL镜像
  4. mysql: #自定义服务名,可随便起,但是必须唯一
  5. image: mysql:5.7.35 #表示你需要运行的MySQL容器的版本
  6. ports: #端口映射,外部端口映射容器内部端口,数组格式可映射多个端口
  7. - 6379:6379
  8. environment: #设置镜像变量
  9. MYSQL_ROOT_PASSWORD: "root" #设置MySQL的密码为root
  10. #运行dockerfile文件制作的镜像
  11. gdxl-admin:
  12. image: gdxl-admin
  13. build:
  14. context: /root/gdxl/admin #表示dockerfile文件存在的目录
  15. dockerfile: dockerfile #表示dockerfile的文件名
  16. ports: #端口映射
  17. - 80:80
  18. depends_on: #表示等mysql这个容器启动了,在启动当前容器
  19. - mysql
  20. gdxl:
  21. image: gdxl
  22. build:
  23. context: ./
  24. dockerfile: dockerfile
  25. ports:
  26. - 8888:8888
  27. #也可以使用environment:设置application.yml中的配置

docker-compose的常用标签

命令作用案例
image依赖的镜像image: openjdk:8
ports端口映射(数组格式)

ports:

   - 80:80

   - 8848:8848

environment设置环境变量(数组格式)

env_file通过文件配置环境变量env_file: 文件名
depends_on表示依赖该容器,等待该容器先启动depends_on: mysql
volumes文件挂载(数组格式)

volumes:

    - /root/conf:/conf

    - /root/data:/data

container_name
给运行的容器起个名字
container_name:MySQL8

容器迁移

假如说我们要把容器迁移到新的机器上,可以使用一下命令。

以正在运行的nacos2容器为例 :

先使用 docker commit 命令保存正在运行的容器为新的镜像:

docker commit 54b178d6e8da my-nacos:0.1

54b178d6e8da :这个是你要保存的容器的id

my-nacos:0.1:    自定义镜像的名称和版本号

 使用docker save 命令将镜像保存成压缩包

 将容器放入别的机器上,使用 docker load 命名可以将压缩包加载成镜像

  • IDEA连接服务器编写、上传DockerFile, docker-compose文件。

        最好使用编排工具写完再将文件长传到服务器,直接在服务器使用vim命令编写,因为没有格式提示,很多时候都会因为格式问题报错。

1.下载Docker插件。步骤FIle——》 Settings....——》Plugins。搜索docker点击installl下载安装。

  

2. 连接服务器,步骤:Tools——>Deloyment——> Configuration..... ,点击后跳出弹框。

2. 填写服务器地址,先点击右侧的三个点儿,才能弹出左侧弹框,根据一下步骤设置完信息后,点击ok.

3. 展示服务器的目录信息,步骤:Tools——》Deloyment——》Browse Remote Host 

 4. 点击IDEA右侧RemoteHost,跳出弹框,双击的服务器名称,连接成功后会展示你当前服务器的所有目录。

5.创建编写docker配置文件,将你的鼠标放,目录上右键选择创建一个文件或者目录。

 

 6. 编写DockerFile文件。(注意把你的文件类型设置成DockerFile,不设置也不耽误运行,但是编写时候,IDEA没有命令提示)

7.编写docker-conpose.yml文件

dockecompose的常用命令

  1. //在docker-compose所在的文件夹内执行,或者执行时指定docker-compose所在的文件夹
  2. docker compose up -d //运行docker-compose.yml编写的所有服务
  3. docker compose down //停止并删除,所有up命令启动的容器
  4. docker-compose ps // 查看正在运行中的容器
  5. docker-compose ps -a //查看所有编排容器,包括已停止的容器
  6. docker system df -v 查看容器的大小

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号