docker-compose,dockerfile部署项目。

目录

安装docker,docker-compose

dockerfile编排和常用命令

制作docker镜像

docker-compose.yml的案例 :

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

dockecompose的常用命令


安装docker,docker-compose

//安装docker
curl -sSL https://get.daocloud.io/docker | sh


//安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose


// 给docker-compose添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
  • Dockerfile常用的标签

ps: 所有命令必须大写。

dockerFile命令
命令 格式 案例 作用
FROM FROM   

FROM    mysql:5.7.35 

FROM    java:8

表示需要依赖的镜像,必须放在第一行
EXPOSE EXPOSE 

EXPOSE  8080

EXPOSE  8081

表示对外暴露的端口,可以使用多个EXPOSE 暴露多个端口
RUN RUN  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 等命令都会在该目录下执行
CMD CMD

CMD   ["java",

"-jar","demo.jar"]

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

后端案例:

FROM java:8              #指定我们运行的服务需要依赖的镜像,一定要写在第一行。

ADD jwc.jar  /jwc.jar    #将指定目录下的文件,拷贝到指定的目录下,

EXPOSE 8080              #指定可以对外暴露的端口,可以使用该命令暴露多个


#在使用docker run启动容器时运行该命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/.urandom","-jar","/jwc.jar"]

前端案例:

FROM nginx:1.21.3-perl    #拉取一个nginx服务

COPY dist/  /usr/share/nginx/html/   #将前端的dist文件拷贝到nginx的html目录下

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

docker-compose,dockerfile部署项目。_第1张图片

制作docker镜像

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

//在dockerfile文件所在得文件,用命令制作镜像,后面的点的意思是Dockerfile所在的文件夹
docker build -t <自定义镜像名> .

//完成后使用docker images 命令查看你的镜像
//接下来就可以使用docker run 命令运行了

docker-compose.yml的案例 :

version: '3.0'           #固定格式,表示docker-compose的版本号
services:                #固定格式,所有服务的入口

#比如启动一个MySQL镜像                         
  mysql:                 #自定义服务名,可随便起,但是必须唯一
    image: mysql:5.7.35  #表示你需要运行的MySQL容器的版本
    ports:               #端口映射,外部端口映射容器内部端口,数组格式可映射多个端口
      - 6379:6379
        
    environment:         #设置镜像变量
       MYSQL_ROOT_PASSWORD: "root"  #设置MySQL的密码为root
  
#运行dockerfile文件制作的镜像    
  gdxl-admin:   
    image: gdxl-admin               
    build:
      context: /root/gdxl/admin     #表示dockerfile文件存在的目录
      dockerfile: dockerfile        #表示dockerfile的文件名
    ports:                          #端口映射
      - 80:80
    depends_on:                     #表示等mysql这个容器启动了,在启动当前容器
      - mysql
  gdxl:
    image: gdxl
    build:
      context: ./
      dockerfile: dockerfile
    ports:
      - 8888:8888
    #也可以使用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-compose,dockerfile部署项目。_第2张图片

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

docker-compose,dockerfile部署项目。_第3张图片

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

docker-compose,dockerfile部署项目。_第4张图片

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

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

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

docker-compose,dockerfile部署项目。_第5张图片  

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

docker-compose,dockerfile部署项目。_第6张图片

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

docker-compose,dockerfile部署项目。_第7张图片

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

docker-compose,dockerfile部署项目。_第8张图片

 4. 点击IDEA右侧RemoteHost,跳出弹框,双击的服务器名称,连接成功后会展示你当前服务器的所有目录。docker-compose,dockerfile部署项目。_第9张图片

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

 docker-compose,dockerfile部署项目。_第10张图片

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

docker-compose,dockerfile部署项目。_第11张图片

7.编写docker-conpose.yml文件

docker-compose,dockerfile部署项目。_第12张图片

dockecompose的常用命令

//在docker-compose所在的文件夹内执行,或者执行时指定docker-compose所在的文件夹

docker compose up -d  //运行docker-compose.yml编写的所有服务
docker compose down   //停止并删除,所有up命令启动的容器
docker-compose ps     // 查看正在运行中的容器
docker-compose ps -a  //查看所有编排容器,包括已停止的容器

docker system df -v 查看容器的大小

你可能感兴趣的:(笔记,docker,容器,运维)