赞
踩
目录
IDEA连接服务器编写、上传DockerFile, 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
ps: 所有命令必须大写。
命令 | 格式 | 案例 | 作用 |
FROM | FROM <img:tag> | FROM mysql:5.7.35 FROM java:8 | 表示需要依赖的镜像,必须放在第一行 |
EXPOSE | EXPOSE <post> | 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编排的话,不需要我们提前将dockefile文件制作镜像。因为docker-compose会根据我们的配置自动找到dockerfile文件为我们制作成镜像后再运行。
- //在dockerfile文件所在得文件,用命令制作镜像,后面的点的意思是Dockerfile所在的文件夹
- docker build -t <自定义镜像名> .
-
- //完成后使用docker images 命令查看你的镜像
- //接下来就可以使用docker run 命令运行了
- 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 save 命令将镜像保存成压缩包
将容器放入别的机器上,使用 docker load 命名可以将压缩包加载成镜像
最好使用编排工具写完再将文件长传到服务器,直接在服务器使用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文件
- //在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 查看容器的大小
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。