찾다
Javajava지도 시간springboot 웹 애플리케이션 이미지를 빌드하고 컨테이너를 사용하여 배포하는 방법

    우리는 Docker의 세 가지 주요 개념인 이미지, 컨테이너 및 창고를 알고 있습니다. 이미지는 컨테이너 운영의 기본입니다. 우리의 일반적인 개발 프로세스는 Docker Hub에서 기본 이미지를 얻고 이를 기반으로 특정 맞춤형 개발을 수행하는 것입니다. 기본 이미지(예: 이미지에 애플리케이션 넣기), 새 이미지를 생성하고 이 새 이미지를 기반으로 컨테이너를 시작한 후 애플리케이션을 실행합니다.

    1. 이미지를 생성하는 두 가지 방법

    Docker 이미지를 만드는 방법에는 일반적으로 두 가지가 있는데, 하나는 dockerfile 구성 파일을 기반으로 하며 가장 권장되는 정통 이미지 생성입니다. 두 번째 방법은 docker commit과 같은 명령을 사용하여 수정된 콘텐츠에서 새 이미지를 수동으로 생성하는 것입니다. docker build进行,这是最推荐的正宗的镜像制作方法;第二种是通过使用docker commit这样的命令,手动将修改后的内容生成新的镜像。

    1.1、使用commit生成镜像

    这种方式不太适合大规模的镜像生成,一是对于镜像的构建内容无法回溯,二是操作效率比较低,但是在某些临时情况下却也有其方便之处,特别是开发测试时,如果临时需要安装一些新的软件,可以快捷生成新的镜像。

    这里以生成一个自带Golang的镜像为例,演示如何使用commit生成镜像。

    1.1.1、拉取Centos基础镜像

    首先我们需要拉去一个Centos的基础镜像,Golang的安装将基于这个基础镜像进行操作。

    搜索centos镜像:

    [root@node1 ~]# docker search centos
    INDEX       NAME                                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    docker.io   docker.io/centos                                       DEPRECATED; The official build of CentOS.       7529      [OK]
    docker.io   docker.io/kasmweb/centos-7-desktop                     CentOS 7 desktop for Kasm Workspaces            33
    docker.io   docker.io/couchbase/centos7-systemd                    centos7-systemd images with additional deb...   7                    [OK]

    拉取STARS数量最高的官方镜像

    [root@node1 ~]# docker pull centos
    Using default tag: latest
    Trying to pull repository docker.io/library/centos ...
    latest: Pulling from docker.io/library/centos
    a1d0c7532777: Pull complete
    Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
    Status: Downloaded newer image for docker.io/centos:latest
    1.1.2、启动Centos容器并安装Go
    [root@node1 ~]# docker run -it centos /bin/bash
    [root@311c53f54f2f /]#
    [root@311c53f54f2f /]# go version
    bash: go: command not found

    这里证明基础的centos里面是没有golang的。

    使用yum安装golang,发现如下错误提示

    [root@311c53f54f2f /]# yum install go
    Failed to set locale, defaulting to C.UTF-8
    CentOS Linux 8 - AppStream                                                                                            71  B/s |  38  B     00:00
    Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

    这是因为yum源的问题,执行以下命令可以解决:

    [root@311c53f54f2f yum.repos.d]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    [root@311c53f54f2f yum.repos.d]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
    [root@311c53f54f2f yum.repos.d]# yum clean all
    Failed to set locale, defaulting to C.UTF-8
    0 files removed
    [root@311c53f54f2f yum.repos.d]# yum makecache
    Failed to set locale, defaulting to C.UTF-8
    CentOS Linux 8 - AppStream                                                                                           2.6 MB/s | 8.4 MB     00:03
    CentOS Linux 8 - BaseOS                                                                                              2.0 MB/s | 4.6 MB     00:02
    CentOS Linux 8 - Extras                                                                                              7.7 kB/s |  10 kB     00:01
    Metadata cache created.

    正常成功安装golang

    [root@311c53f54f2f yum.repos.d]# yum install go
    [root@311c53f54f2f yum.repos.d]# go version
    go version go1.16.12 linux/amd64
    1.1.3、commit生成新镜像

    首先使用docker ps查看当前的容器container id,这里是311c53f54f2f

    [root@node1 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    311c53f54f2f        centos              "/bin/bash"         13 minutes ago      Up 13 minutes

    使用docker commit命令生成新的镜像

    [root@node1 ~]# docker commit -a "lucas" -m "install golang" 311c53f54f2f centos-go:v1
    sha256:019ab02d451defb75e2ee03948289ed008036ba7ec8a355cae28bdf7fbce07d2

    再次使用docker image可以看到我们生成的centos-go的新镜像。

    [root@node1 ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos-go           v1                  019ab02d451d        2 minutes ago       805 MB
    docker.io/busybox   latest              bab98d58e29e        8 days ago          4.86 MB
    docker.io/nginx     latest              904b8cb13b93        13 days ago         142 MB
    docker.io/centos    latest              5d0da3dc9764        18 months ago       231 MB
    1.1.4、使用新镜像验证Golang环境
    [root@node1 ~]# docker run -it centos-go:v1 /bin/bash
    [root@daff0519f2ca /]# go version
    go version go1.16.12 linux/amd64

    1.2、使用Dockerfile生成镜像

    Dockerfile是一个包含Docker镜像构建指令的文本文件,用于自动化Docker镜像的构建过程。Dockerfile通过一系列指令来描述镜像的构建过程,包括基础镜像、依赖安装、文件拷贝、环境变量配置、启动命令等。Dockerfile的语法是类似于Shell脚本的语言。

    Dockerfile包含四个部分:基础镜像信息、维护者信息、镜像操作命令和容器启动命令。在Dockerfile中,注释以#开头,可用于说明指令作用或提供其他注释信息。

    以下是一些常见的Dockerfile命令:

    • FROM:指定基础镜像,例如FROM ubuntu:latest,FROM指令必须是除了注释意外的第一条指令,后续紧跟维护者信息指令。

    • MAINTAINER:指定维护者的信息,例如MAINTAINER lucas

    • RUN:在镜像中运行命令,例如RUN apt-get update && apt-get install -y nginx

    • CMD:指定容器启动时要运行的命令,例如CMD [“nginx”, “-g”, “daemon off;”]。

    • EXPOSE:声明容器要监听的端口,例如EXPOSE 80

    • ENV:设置环境变量,例如ENV NODE_ENV production

    • ADD:将文件复制到镜像中,例如ADD app.js /app.js

    • COPY:将文件复制到镜像中,例如COPY app.js /app.js

    • WORKDIR:设置工作目录,例如WORKDIR /app

    • USER:设置容器启动时要使用的用户,例如USER nginx

    • VOLUME:声明容器数据卷,例如VOLUME /data

    • ENTRYPOINT:指定容器启动时要运行的命令,例如ENTRYPOINT ["nginx", "-g", "daemon off;"]

    除了这些常用命令,Dockerfile还有其他可用命令。可以查看Docker官方文档以获取更多信息。

    完成了dockerfile的配置以后,使用docker build就可以构建镜像了。docker build命令可以通过指定不同的参数来自定义构建过程。例如,你可以使用--no-cache选项来强制Docker在构建镜像时不使用缓存,或者使用--build-arg选项来传递构建时需要的环境变量。可以通过docker build --help

    1.1. 커밋을 사용하여 이미지 생성

    이 방법은 대규모 이미지 생성에 적합하지 않습니다. 첫째, 이미지의 구성 내용을 추적할 수 없습니다. 둘째, 작업 효율성이 상대적으로 낮습니다. 그러나 일부 임시 상황에서는 다운로드가 편리할 수도 있습니다. 특히 개발 및 테스트 중에 새 소프트웨어를 임시로 설치해야 하는 경우 새 이미지를 빠르게 생성할 수 있습니다.

    다음은 커밋을 사용하여 이미지를 생성하는 방법을 보여주기 위해 Golang과 함께 제공되는 이미지 생성의 예입니다.

    1.1.1. Centos 기본 이미지 가져오기
    먼저 Centos 기본 이미지를 가져와야 합니다. Golang 설치는 ​​이 기본 이미지를 기반으로 합니다. 🎜🎜centos 이미지 검색: 🎜
    FROM openjdk:18-jdk-alpine
    MAINTAINER lucas
    COPY target/demo-0.0.1-SNAPSHOT.jar /usr/app/
    WORKDIR /usr/app
    EXPOSE 8080
    ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"]
    🎜STARS🎜
    docker build -t demo:latest .
    1.1.2가 가장 많은 공식 이미지를 가져와서 Centos 컨테이너를 시작하고 Go
    [root@node1 docker]# docker build -t demo:latest .
    Sending build context to Docker daemon 51.05 MB
    Step 1/6 : FROM openjdk:18-jdk-alpine
     ---> c89120dcca4c
    Step 2/6 : MAINTAINER lucas
     ---> Running in 3d0ae6d2a813
     ---> 085b9066ca7b
    Removing intermediate container 3d0ae6d2a813
    Step 3/6 : COPY target/demo-0.0.1-SNAPSHOT.jar /usr/app/
     ---> c5c77f80f179
    Removing intermediate container 00228e4b0aed
    Step 4/6 : WORKDIR /usr/app
     ---> bdb555e3fb18
    Removing intermediate container 35682266f140
    Step 5/6 : EXPOSE 8080
     ---> Running in 499d9888fa01
     ---> 0fca023e8f23
    Removing intermediate container 499d9888fa01
    Step 6/6 : ENTRYPOINT java -jar demo-0.0.1-SNAPSHOT.jar
     ---> Running in 661fdaafa31d
     ---> 61e80950d665
    Removing intermediate container 661fdaafa31d
    Successfully built 61e80950d665
    🎜를 설치하면 기본 센토스. 🎜🎜yum을 사용하여 golang을 설치했는데 다음과 같은 오류 메시지가 나타났습니다. 🎜
    docker run -d -p 8080:8080 demo:latest
    🎜이는 yum 소스 문제 때문인데, 다음 명령을 실행하면 해결될 수 있습니다. 🎜rrreee🎜Golang이 정상적으로 설치되었습니다🎜rrreee
    1.1 .3, 새 이미지 생성을 커밋 h5>🎜먼저 docker ps를 사용하여 현재 컨테이너 컨테이너 ID인 311c53f54f2f를 확인하세요. 🎜rrreee🎜docker commit 명령을 사용하여 새 이미지를 생성하세요. 🎜rrreee🎜docker image를 다시 사용하여 우리가 생성한 centos-go의 새 이미지를 확인하세요. 🎜rrreee
    1.1.4, 새 이미지를 사용하여 Golang 환경 확인
    rrreee

    1.2, Dockerfile을 사용하여 이미지 생성

    🎜Dockerfile은 Docker 이미지 구축 지침이 포함된 텍스트 파일입니다. Docker 이미지 구축 프로세스를 자동화하는 데 사용됩니다. Dockerfile은 기본 이미지, 종속성 설치, 파일 복사, 환경 변수 구성, 시작 명령 등을 포함한 일련의 지침을 통해 이미지 구축 프로세스를 설명합니다. Dockerfile의 구문은 쉘 스크립팅과 유사한 언어입니다. 🎜🎜Dockerfile에는 기본 이미지 정보, 관리자 정보, 이미지 작업 명령, 컨테이너 시작 명령의 네 부분이 포함되어 있습니다. Dockerfile에서는 #으로 시작하는 주석을 사용하여 명령어의 기능을 설명하거나 기타 주석 정보를 제공할 수 있습니다. 🎜🎜다음은 몇 가지 일반적인 Dockerfile 명령입니다. 🎜
    • 🎜FROM: FROM ubuntu:latest, FROM과 같은 기본 이미지를 지정합니다. 예상치 못한 첫 번째 지시어를 주석 처리하는 것 외에도 유지관리자 정보 지시어를 따르세요. 🎜
    • 🎜MAINTAINER: MAINTAINER lucas와 같은 관리자 정보를 지정합니다. 🎜
    • 🎜RUN: 이미지에서 RUN apt-get update && apt-get install -y nginx와 같은 명령을 실행합니다. 🎜
    • 🎜CMD: CMD ["nginx", "-g", "daemon off;"]와 같이 컨테이너가 시작될 때 실행할 명령을 지정합니다. 🎜
    • 🎜EXPOSE: 컨테이너가 수신할 포트를 선언합니다(예: EXPOSE 80). 🎜
    • 🎜ENV: ENV NODE_ENV 프로덕션과 같은 환경 변수를 설정합니다. 🎜
    • 🎜ADD: ADD app.js /app.js와 같이 파일을 이미지에 복사합니다. 🎜
    • 🎜COPY: COPY app.js /app.js와 같이 파일을 이미지에 복사합니다. 🎜
    • 🎜WORKDIR: 작업 디렉터리를 설정합니다(예: WORKDIR /app). 🎜
    • 🎜USER: USER nginx와 같이 컨테이너를 시작할 때 사용할 사용자를 설정합니다. 🎜
    • 🎜VOLUME: VOLUME /data와 같이 컨테이너 데이터 볼륨을 선언합니다. 🎜
    • 🎜ENTRYPOINT: ENTRYPOINT ["nginx", "-g", "daemon off;"]와 같이 컨테이너가 시작될 때 실행할 명령을 지정합니다. 🎜
    • 🎜🎜 이러한 일반적인 명령 외에도 Dockerfile에는 사용 가능한 다른 명령이 있습니다. 자세한 내용은 공식 Docker 설명서를 확인하세요. 🎜🎜dockerfile 구성을 완료한 후 docker build를 사용하여 이미지를 빌드합니다. docker build 명령은 다양한 매개변수를 지정하여 빌드 프로세스를 사용자 정의할 수 있습니다. 예를 들어 --no-cache 옵션을 사용하여 Docker가 이미지를 빌드할 때 캐시를 사용하지 않도록 강제하거나 --build-arg 옵션을 사용하여 필수 빌드 환경 변수를 전달합니다. docker build --help 명령을 통해 사용 가능한 모든 옵션을 볼 수 있습니다. 🎜🎜2. Dockerfile을 기반으로 springboot 이미지 생성🎜🎜여기에서는 dockerfile을 사용하여 springboot 웹 애플리케이션 이미지를 빌드하고 docker를 사용하여 컨테이너를 시작하는 방법을 보여줍니다. 🎜

      2.1、准备springboot应用jar包

      我们准备一个基于springboot开发的应用服务,这个服务开放8080端口,访问是返回一个用户的姓名信息。

      为了方便,可以使用spring initializr 在线生成demo代码,在demo代码的基础上开发一个controller返回一个User对象的name信息,由于这块代码比较简单,这里就不详述过程了。

      springboot 웹 애플리케이션 이미지를 빌드하고 컨테이너를 사용하여 배포하는 방법

      代码完成以后使用mvn clean package进行打包,这里打包成功以后生成了demo-0.0.1-SNAPSHOT.jar,我们使用java -jar demo-0.0.1-SNAPSHOT.jar就可以运行这个应用程序。

      2.2、编写Dockerfile

      在项目根目录下创建一个名为Dockerfile的文件,并在其中添加以下内容:

      FROM openjdk:18-jdk-alpine
      MAINTAINER lucas
      COPY target/demo-0.0.1-SNAPSHOT.jar /usr/app/
      WORKDIR /usr/app
      EXPOSE 8080
      ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"]

      在上面的Dockerfile中,FROM指令指定了基础镜像为openjdk:18-jdk-alpineCOPY指令将构建好的可执行jar包复制到容器中,WORKDIR指令设置工作目录为/usr/appEXPOSE指令指定了容器运行的端口为8080ENTRYPOINT指令指定了容器启动时要执行的命令为java -jar demo-0.0.1-SNAPSHOT.jar

      在终端中进入项目根目录,然后执行以下命令构建镜像:

      docker build -t demo:latest .

      其中,-t参数指定了镜像的名称和版本号,.参数指定了Dockerfile所在的目录。

      [root@node1 docker]# docker build -t demo:latest .
      Sending build context to Docker daemon 51.05 MB
      Step 1/6 : FROM openjdk:18-jdk-alpine
       ---> c89120dcca4c
      Step 2/6 : MAINTAINER lucas
       ---> Running in 3d0ae6d2a813
       ---> 085b9066ca7b
      Removing intermediate container 3d0ae6d2a813
      Step 3/6 : COPY target/demo-0.0.1-SNAPSHOT.jar /usr/app/
       ---> c5c77f80f179
      Removing intermediate container 00228e4b0aed
      Step 4/6 : WORKDIR /usr/app
       ---> bdb555e3fb18
      Removing intermediate container 35682266f140
      Step 5/6 : EXPOSE 8080
       ---> Running in 499d9888fa01
       ---> 0fca023e8f23
      Removing intermediate container 499d9888fa01
      Step 6/6 : ENTRYPOINT java -jar demo-0.0.1-SNAPSHOT.jar
       ---> Running in 661fdaafa31d
       ---> 61e80950d665
      Removing intermediate container 661fdaafa31d
      Successfully built 61e80950d665

      可以看到构建成功,使用docker images 可以查看到构建成功的镜像。

      springboot 웹 애플리케이션 이미지를 빌드하고 컨테이너를 사용하여 배포하는 방법

      三、运行容器服务,验证镜像的可用性

      以上步骤已经使用docker build生成了镜像,接下来就可以使用这个镜像启动容器,启动后会自动启动应用程序。

      在终端中执行以下命令启动容器:

      docker run -d -p 8080:8080 demo:latest

      其中,-d参数指定了容器在后台运行,-p参数指定了容器的端口映射,demo:latest参数指定了要运行的镜像名称和版本号。

      访问对应的web服务进行访问验证,结果如下:

      springboot 웹 애플리케이션 이미지를 빌드하고 컨테이너를 사용하여 배포하는 방법

    위 내용은 springboot 웹 애플리케이션 이미지를 빌드하고 컨테이너를 사용하여 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명
    이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
    고급 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 또는 Gradle을 어떻게 사용합니까?고급 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 또는 Gradle을 어떻게 사용합니까?Mar 17, 2025 pm 05:46 PM

    이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

    적절한 버전 및 종속성 관리로 Custom Java 라이브러리 (JAR Files)를 작성하고 사용하려면 어떻게해야합니까?적절한 버전 및 종속성 관리로 Custom Java 라이브러리 (JAR Files)를 작성하고 사용하려면 어떻게해야합니까?Mar 17, 2025 pm 05:45 PM

    이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

    카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까?카페인 또는 구아바 캐시와 같은 라이브러리를 사용하여 자바 애플리케이션에서 다단계 캐싱을 구현하려면 어떻게해야합니까?Mar 17, 2025 pm 05:44 PM

    이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

    캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까?캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA (Java Persistence API)를 어떻게 사용하려면 어떻게해야합니까?Mar 17, 2025 pm 05:43 PM

    이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

    Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까?Java의 클래스로드 메커니즘은 다른 클래스 로더 및 대표 모델을 포함하여 어떻게 작동합니까?Mar 17, 2025 pm 05:35 PM

    Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.

    분산 컴퓨팅에 Java의 RMI (원격 메소드 호출)를 어떻게 사용할 수 있습니까?분산 컴퓨팅에 Java의 RMI (원격 메소드 호출)를 어떻게 사용할 수 있습니까?Mar 11, 2025 pm 05:53 PM

    이 기사에서는 분산 응용 프로그램을 구축하기위한 Java의 원격 메소드 호출 (RMI)에 대해 설명합니다. 인터페이스 정의, 구현, 레지스트리 설정 및 클라이언트 측 호출을 자세히 설명하여 네트워크 문제 및 보안과 같은 문제를 해결합니다.

    네트워크 통신에 Java의 Sockets API를 어떻게 사용합니까?네트워크 통신에 Java의 Sockets API를 어떻게 사용합니까?Mar 11, 2025 pm 05:53 PM

    이 기사는 네트워크 통신을위한 Java의 소켓 API, 클라이언트 서버 설정, 데이터 처리 및 리소스 관리, 오류 처리 및 보안과 같은 중요한 고려 사항에 대해 자세히 설명합니다. 또한 성능 최적화 기술, i

    Java에서 사용자 정의 네트워킹 프로토콜을 어떻게 만들 수 있습니까?Java에서 사용자 정의 네트워킹 프로토콜을 어떻게 만들 수 있습니까?Mar 11, 2025 pm 05:52 PM

    이 기사에서는 맞춤형 Java 네트워킹 프로토콜을 작성합니다. 프로토콜 정의 (데이터 구조, 프레임, 오류 처리, 버전화), 구현 (소켓 사용), 데이터 직렬화 및 모범 사례 (효율성, 보안, Mainta를 포함합니다.

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    인기 기사

    R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 최고의 그래픽 설정
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
    3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

    뜨거운 도구

    안전한 시험 브라우저

    안전한 시험 브라우저

    안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    Atom Editor Mac 버전 다운로드

    Atom Editor Mac 버전 다운로드

    가장 인기 있는 오픈 소스 편집기

    SublimeText3 영어 버전

    SublimeText3 영어 버전

    권장 사항: Win 버전, 코드 프롬프트 지원!

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기