Docker

Install and configure JFrog Artifactory using Docker and Docker Compose with comprehensive setup instructions for both single-node and high-availability configurations.

Docker Compose offer a robust, containerized approach to deploying Xray. This method simplifies the setup and management of all Xray services and their dependencies, providing a portable solution for both single-node and high-availability (HA) configurations.

Tip

To simplify the installation process, you can try our Artifactory Install Helper tool. It provides an interactive walkthrough to help you quickly configure and set up Artifactory. While the instructions in this guide will walk you through the process in detail, the Artifactory Install Helper is an easy-to-use alternative.

Install Artifactory using Docker Compose

Installing Artifactory with Docker Compose provides a flexible and containerized approach to deployment, simplifying the setup of Artifactory and its dependencies within a Docker environment.

Here you'll find step-by-step instructions for installing JFrog Artifactory using Docker Compose, covering both single-node and high-availability (HA) configurations.

Prerequisites


📘

Redhat UBI Micro base image

In an effort to provide a more secure Artifactory image, Artifactory now uses the Redhat UBI Micro base image. Some of the tools that were available in the Artifactory image are not available in this more secure image. For more information, see JFrog Products Container Base Image.

Using the config.sh Script

This is the recommended method, which automates the creation of necessary folders and sets permissions, streamlining the setup process for both single-node and HA.

  1. Download and Extract the Artifactory Docker Compose Archive:

    1. Download the Artifactory Docker Compose Package:

      Download the specific Artifactory Docker Compose package you wish to install. To download a specific version, replace [RELEASE] with the exact version number (for example, 7.111.11) in the command below:

      # JFrog Artifactory Pro
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro/org/artifactory/pro/docker/jfrog-artifactory-pro/[RELEASE]/jfrog-artifactory-pro-[RELEASE]-compose.tar.gz'
      
      # For example, to download Artifactory Pro 7.111.11:
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro/org/artifactory/pro/docker/jfrog-artifactory-pro/7.111.11/jfrog-artifactory-pro-7.111.11-compose.tar.gz'
      
      # JFrog Artifactory OSS/JCR
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/bintray-artifactory/org/artifactory/<oss|jcr>/docker/jfrog-artifactory-<oss|jcr>/[RELEASE]/jfrog-artifactory-<oss|jcr>-[RELEASE]-compose.tar.gz'
      
      # For example, to download Artifactory OSS 7.135.1:
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/bintray-artifactory/org/artifactory/oss/docker/jfrog-artifactory-oss/7.135.1/jfrog-artifactory-oss-7.135.1-compose.tar.gz'
    2. Extract the Archive and Navigate:

      Extract the contents of the downloaded compressed archive (.tar.gz file) and then navigate into the extracted folder.

      tar -xvf jfrog-artifactory-<pro|oss|jcr>-<version>-compose.tar.gz
      # Example:
      # tar -xvf jfrog-artifactory-pro-7.111.11-compose.tar.gz
      # Navigate into the extracted folder
      cd artifactory-<pro|oss|jcr>-<version>/
📘

Note

An .env file is included within the Docker Compose archive. This file is used by Docker Compose and is updated during installations and upgrades. Some operating systems do not display dot files by default. If you make any changes to this file, remember to back it up before an upgrade.

  1. Run the Interactive config.sh Script

    1. Execute the Script:

      📘

      Note

      The config.sh script is used at the beginning of the installation process to create the necessary folder structure on each node and assign the appropriate ownership. This step is crucial for the correct functioning of Artifactory HA. If you opt to use Docker Compose instead, be aware that you will need to manually set up the folder structure and permissions as specified in the .env file.

      Run the config.sh script with root user permissions to set up folders with the required ownership. This script is crucial for correct functioning, especially in HA.

      sudo bash ./config.sh
    2. Follow Script Prompts:

      The script will prompt you for:

      • Installation Directory: (Default: /root/.jfrog/artifactory). Press Enter for default or enter a custom path.
      • Machine IP Address: (Default: 0.0.0.0). Press Enter to use the machine's detected IP. For IPv6, use [<ipv6_address>].
      • Additional Node (for HA): Are you adding node to an existing product cluster? [y/N]: Choose y if setting up an HA node.
      • Install PostgreSQL (for initial setup/demo): Do you want to install PostgreSQL? [Y/n]: For production, select n to use an external database.
  2. Configure Host ID and IP for Container Installations:

    For Podman and other Container Installations, verify that the host's ID (shared.node.id) and IP (shared.node.ip) are explicitly added to the system.yaml. If these are not manually added, they are automatically resolved as the container's IP, meaning other nodes and services will not be able to reach this instance.

    shared:
      node:
        ip: host-ip # Actual IP of the host machine
        id: host-id
  3. Follow the steps mentioned in Docker Compose Next Steps to complete the setup.

Manual Docker Compose Installation

This method provides full manual control over folder structure and permissions, making it suitable for advanced users or specific environments.

  1. Create JFrog Home Directory and Set JFROG_HOME Variable

    1. Create Dedicated Directory:

      Create a dedicated directory for your JFrog installation. This can be any directory of your choice (for example, /app/jfrog, /usr/local/jfrog, or a custom path).

      # Replace <path to your directory> with your chosen directory
      sudo mkdir -p <path to your directory> 
      cd <path to your directory>
    2. Set JFROG_HOME Variable:

      Set the JFROG_HOME environment variable to easily refer to this path in your terminal. This must match the directory you created in the previous step.

      # Replace <path to your directory> with your chosen directory
      export JFROG_HOME=<path to your directory>

    For more information, see JFrog Product Directory Structure.

  2. Download and Extract the Artifactory Docker Compose Archive:

    1. Download the Artifactory Docker Compose Package:

      Download the specific Artifactory Docker Compose package you wish to install. To download a specific version, replace [RELEASE] with the exact version number (for example, 7.111.11) in the command below:

      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-<pro|oss|jcr|cpp-ce>/org/artifactory/<pro|oss|jcr|cpp-ce>/docker/jfrog-artifactory-<pro|oss|jcr|cpp-ce>/[RELEASE]/jfrog-artifactory-<pro|oss|jcr|cpp-ce>-[RELEASE]-compose.tar.gz'
      
      # For example, to download Artifactory Pro 7.111.11:
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro/org/artifactory/pro/docker/jfrog-artifactory-pro/7.111.11/jfrog-artifactory-pro-7.111.11-compose.tar.gz'
    2. Extract the Archive and Navigate:

      Extract the contents of the downloaded compressed archive (.tar.gz file) and then navigate into the extracted folder.

      tar -xvf jfrog-artifactory-<pro|oss|jcr|cpp-ce>-<version>-compose.tar.gz
      # Example:
      # tar -xvf jfrog-artifactory-pro-7.111.11-compose.tar.gz
      # Navigate into the extracted folder
      cd artifactory-<pro|oss|jcr|cpp-ce>-<version>/
📘

Note

An .env file is included within the Docker Compose archive. This file is used by Docker Compose and is updated during installations and upgrades. Some operating systems do not display dot files by default. If you make any changes to this file, remember to back it up before an upgrade.

  1. Manual Folder Setup and Docker Compose Configuration

    1. Create Folder Structure and Set Ownership:

      Create the necessary folder structure under your chosen $JFROG_HOME and set the correct ownership for Docker containers.

      mkdir -p $JFROG_HOME/artifactory/var
      mkdir -p $JFROG_HOME/artifactory/var/data
      mkdir -p $JFROG_HOME/artifactory/var/etc
      
      # Necessary if you plan to add Nginx via Docker Compose
      mkdir -p $JFROG_HOME/artifactory/var/data/nginx
      # Necessary if you plan to add PostgreSQL via Docker Compose
      mkdir -p $JFROG_HOME/artifactory/var/data/postgres

      Then, set the ownership (user ID 1030 and group ID 1030 are typical for Artifactory containers; adjust others as needed for PostgreSQL/Nginx).

      sudo chown -R 1030:1030 $JFROG_HOME/artifactory/var
      sudo chown -R 1030:1030 $JFROG_HOME/artifactory/var/data
      sudo chown -R 1030:1030 $JFROG_HOME/artifactory/var/etc
      sudo chown -R 104:107 $JFROG_HOME/artifactory/var/data/nginx  # For Nginx
      sudo chown -R 999:999 $JFROG_HOME/artifactory/var/data/postgres # For PostgreSQL
    2. Copy and Use Docker Compose Files:

      The docker-compose.yaml files are templates designed to be used together, not as a choice of one or the other. You should copy the necessary files from the templates folder to your main installation directory.

      You do not need to rename the files. Simply copy the ones you need to your main installation directory.

RequirementTemplateInstructions
Artifactory + Bundled Derby Databasedocker-compose.yamlThis is the core template for a single-node installation with the default bundled database. You should always use this file.
Artifactory + PostgreSQLdocker-compose-postgres.yamlThis file defines the PostgreSQL service. Use it in addition to the docker-compose.yaml file to use an external database.
Artifactory + Nginxdocker-compose-nginx.yamlThis file defines the Nginx service. Use it in addition to the docker-compose.yaml file to add a reverse proxy.
  1. Update the .env File:

    Update the .env file with the installation directory.

    ROOT_DATA_DIR=$JFROG_HOME/artifactory
    ##Enter the exact value of $JFROG_HOME. For example, /root/.jfrog.
  2. Configure Host ID and IP for Container Installations:

    For Podman and other Container Installations, verify that the host's ID (shared.node.id) and IP (shared.node.ip) are explicitly added to the system.yaml. If these are not manually added, they are automatically resolved as the container's IP, meaning other nodes and services will not be able to reach this instance.

    shared:
      node:
        ip: host-ip # Actual IP of the host machine
        id: host-id
  3. Follow the steps mentioned in Docker Compose Next Steps to complete the setup.

Docker Compose with Docker Volumes

This method leverages Docker volumes for data persistence, which is often a good practice for single-node production environments. It is a variation of the manual installation.

  1. Create JFrog Home Directory and Set JFROG_HOME Variable

    1. Create Dedicated Directory:

      Create a dedicated directory for your JFrog installation. This can be any directory of your choice (for example, /app/jfrog, /usr/local/jfrog, or a custom path).

      # Replace <path to your directory> with your chosen directory
      sudo mkdir -p <path to your directory> 
      cd <path to your directory>
    2. Set JFROG_HOME Variable:

      Set the JFROG_HOME environment variable to easily refer to this path in your terminal. This must match the directory you created in the previous step.

      # Replace <path to your directory> with your chosen directory
      export JFROG_HOME=<path to your directory>

    For more information, see JFrog Product Directory Structure.

  2. Download and Extract the Artifactory Docker Compose Archive:

    1. Download the Artifactory Docker Compose Package:

      Download the specific Artifactory Docker Compose package you wish to install. To download a specific version, replace [RELEASE] with the exact version number (for example, 7.111.11) in the command below:

      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-<pro|oss|jcr|cpp-ce>/org/artifactory/<pro|oss|jcr|cpp-ce>/docker/jfrog-artifactory-<pro|oss|jcr|cpp-ce>/[RELEASE]/jfrog-artifactory-<pro|oss|jcr|cpp-ce>-[RELEASE]-compose.tar.gz'
      
      # For example, to download Artifactory Pro 7.111.11:
      curl -g -L -O -J 'https://releases.jfrog.io/artifactory/artifactory-pro/org/artifactory/pro/docker/jfrog-artifactory-pro/7.111.11/jfrog-artifactory-pro-7.111.11-compose.tar.gz'
    2. Extract the Archive and Navigate:

      Extract the contents of the downloaded compressed archive (.tar.gz file) and then navigate into the extracted folder.

      tar -xvf jfrog-artifactory-<pro|oss|jcr|cpp-ce>-<version>-compose.tar.gz
      # Example:
      # tar -xvf jfrog-artifactory-pro-7.111.11-compose.tar.gz
      # Navigate into the extracted folder
      cd artifactory-<pro|oss|jcr|cpp-ce>-<version>/
📘

Note

An .env file is included within the Docker Compose archive. This file is used by Docker Compose and is updated during installations and upgrades. Some operating systems do not display dot files by default. If you make any changes to this file, remember to back it up before an upgrade.

  1. Create Docker Volumes and Configure Docker Compose

    1. Create Docker Volumes:

      Create named Docker volumes to manage Artifactory's data and, if applicable, the PostgreSQL data.

      docker volume create --name=artifactory_data
      
      # Only if using PostgreSQL managed by Docker Compose
      docker volume create --name=postgres_data
    2. Copy Docker Compose Volume Template:

      Copy the docker-compose-volumes.yaml template to your current extracted directory and rename it to docker-compose.yaml.

      cp templates/docker-compose-volumes.yaml docker-compose.yaml
    3. Update the .env File:

      Add entries to the .env file for node identification. Avoid adding duplicate entries.

      echo -e "JF_SHARED_NODE_IP=$(hostname -i)" >> .env
      echo -e "JF_SHARED_NODE_ID=$(hostname -s)" >> .env
      echo -e "JF_SHARED_NODE_NAME=$(hostname -s)" >> .env
  2. Follow the steps mentioned in Docker Compose Next Steps to complete the setup.

Docker Compose Next Steps

These steps apply after your chosen installation method has been completed. For HA installations, these steps are performed on each node.

  1. Set up Artifactory Database

    Artifactory requires an external database for production. JFrog highly recommends using PostgreSQL for all products in the JFrog Platform, although Artifactory supports additional databases. For more information, see Database Configuration.

    1. Configure Artifactory to Use PostgreSQL:

      On each Artifactory node, edit $JFROG_HOME/artifactory/var/etc/system.yaml to point Artifactory to your external database.

      shared:
        database:
          type: postgresql
          driver: org.postgresql.Driver
          url: jdbc:postgresql://<DB_SERVER_IP_OR_HOSTNAME>:5432/artifactory_db
          username: artifactory_user
          password: your_secure_password

      The database configuration in system.yaml must be identical on all Artifactory nodes, and all nodes must have reliable network access to the single shared external database instance.

    2. Configure Other Supported Databases (Optional):

      To utilize databases other than PostgreSQL, you'll need to set shared.database.allowNonPostgresql to true in your system.yaml and configure the database details. Here's an example for MySQL:

      shared:
        database:
          allowNonPostgresql: true
          type: mysql
          driver: com.mysql.jdbc.Driver
          url: jdbc:mysql://<your db url, for example: localhost:3306>/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true&useSSL=false
          username: artifactory
          password: password

    For more information about creating and configuring databases, see Set up Database.

  2. Set up Supported Filestores

    The filestore is where Artifactory physically stores the binaries.

    • Single-Node: A local filesystem is the default, but externalizing it (for example, to a dedicated volume) is recommended for easier management and potential migration.
    • High Availability (HA): A shared filestore is mandatory. This can be NFS, S3, Azure Blob Storage, Google Cloud Storage, or another supported object storage solution. All Artifactory nodes in the cluster must have unified and reliable network access to this single shared filestore.

    For more information about configuring filestores, see Set up Filestore.

  3. Configure HA (On Each Artifactory Node)

    For HA (Multi-Node) Installations, you'll configure each server in your Artifactory HA cluster similarly. A High Availability (HA) installation typically requires at least three or more nodes.

    1. Configure system.yaml for HA

      Edit $JFROG_HOME/artifactory/var/etc/system.yaml on each node.

      • In the node section, set haEnabled to true.
      • taskAffinity set to any indicates that all the nodes in the HA can act as primary nodes.
      shared:
        node:
          haEnabled: true
          taskAffinity: any
    2. If using an external database, ensure the database section (as configured in Step 1) is also present and identical on all nodes.

  4. Start Artifactory

    Before starting Artifactory, if your docker-compose.yaml includes a PostgreSQL service (for example, from docker-compose-postgres.yaml), you'll need to start it first.

    • Start PostgreSQL (if managed by Docker Compose)

      Starting from Artifactory 7.8.x, PostgreSQL needs to be started before starting the other services.

      docker compose -p rt-postgres -f docker-compose-postgres.yaml up -d
    • Start Artifactory (main services)

      Run the following command to start Artifactory. On the first HA node, Artifactory will initialize the database and potentially generate the master.key if it doesn't already exist.

      docker compose -p rt up -d

    For HA setup,

    1. Add the License:

      Once the first Artifactory node (for example, artifactory_1) is fully up and running, add the license through its UI.

    2. Copy master.key to Other Nodes:

      Copy the master.key file from $JFROG_HOME/artifactory/var/etc/security/ of the first node to the identical path on all other nodes.

    3. Update system.yaml in Other Nodes

      Your system.yaml on subsequent nodes should look like this (with the copied values):

      shared:
        security:
          masterKey: <copied_master_key_from_first_node>
    4. Start Remaining Nodes for HA:

      Once the masterKey is synchronized across all nodes, start the Artifactory service on the remaining nodes:

      docker compose -p rt up -d

      For HA setup, remember to add the license to the first node once it's up.

  5. Monitor Artifactory

    To check the Artifactory status, run the following command:

    docker compose -p rt logs
  6. Access Artifactory UI

    After starting Artifactory, open your browser and go to http://<SERVER_HOSTNAME>:8082/ui/, replacing <SERVER_HOSTNAME> with your server's actual IP address or hostname.

    For HA setup, you will typically access Artifactory through a load balancer that distributes traffic across your HA nodes. Configure your load balancer to direct traffic to http://< ARTIFACTORY_NODE_IP>:8082/ on each node.

  7. Initial Setup

    Upon first access, you'll be guided through an onboarding wizard:

    • Change Default Admin Password: The default credentials are admin/password. Change this immediately.
    • Configure Base URL: Configure the Base URL.
    • Apply Licenses: If you have an Artifactory Pro or Enterprise license, apply it.

Install Artifactory using Docker

Installing Artifactory with Docker involves running Artifactory within a container, providing a highly portable and consistent deployment. This method is suitable for both single-node setups and high-availability (HA) configurations.

Here you'll find step-by-step instructions for installing JFrog Artifactory using Docker commands, covering both single-node and high-availability (HA) configurations.

Prerequisites

Install Artifactory Docker Containers

Throughout these installation steps, you must have sudo privileges or be the root user for system-level operations, package installations, and file modifications. This ensures that Artifactory can be installed correctly.

The following steps cover the installation process for both single-node and HA:

  1. Set JFROG_HOME Variable and Create Directories

    1. Set the JFROG_HOME directory:

      Run the following command to define the JFROG_HOME environment variable, pointing to the base directory where Artifactory's data (var folder) will reside on the host machine.

      export JFROG_HOME=<path of your directory>

      For example: export JFROG_HOME=/opt/jfrog. For more information, see JFrog Product Directory Structure.

    2. Create system.yaml and Set Permissions:

      In your defined JFROG_HOME directory, create the necessary Artifactory directory structure, including an empty system.yaml file, and set the required ownership. The user creating the folder should be the user running the Docker command.

      mkdir -p $JFROG_HOME/artifactory/var/etc/
      cd $JFROG_HOME/artifactory/var/etc/
      touch ./system.yaml
      sudo chown -R 1030:1030 $JFROG_HOME/artifactory/var

      If you are using Docker on a Mac machine, run the following additional command to ensure proper permissions:

      sudo chmod -R 777 $JFROG_HOME/artifactory/var
  2. Set up Artifactory Database

    Artifactory requires an external database for production. JFrog highly recommends using PostgreSQL for all products in the JFrog Platform, although Artifactory supports additional databases. For more information, see Database Configuration.

    1. For Non-Production (Optional: PostgreSQL Container):

      For a non-production environment, you can start a PostgreSQL container on the same machine as your Artifactory container:

      docker run --name postgres -itd -e POSTGRES_USER=artifactory -e POSTGRES_PASSWORD=password -e POSTGRES_DB=artifactorydb -p 5432:5432 library/postgres:<version>
      # Example:
      # docker run --name postgres -itd -e POSTGRES_USER=artifactory -e POSTGRES_PASSWORD=password -e POSTGRES_DB=artifactorydb -p 5432:5432 library/postgres:16.8
    2. For Production (External Database) and Configuration:

      For production environments, connect to an external database. On each Artifactory node, configure the system.yaml file with the database configuration details.

      shared:
        database:
          driver: org.postgresql.Driver
          type: postgresql
          url: jdbc:postgresql://host.docker.internal:5432/artifactorydb
          username: artifactory
          password: password

      The database connection URL may vary depending on the Container Engine in use (for example, host.docker.internal for Docker Desktop, actual IP for remote DB or Docker on Linux). Please ensure you are using the correct URL for your specific environment.

    3. Configure Other Supported Databases (Optional):

      To utilize databases other than PostgreSQL, you'll need to set shared.database.allowNonPostgresql to true in your system.yaml and configure the database details. Here's an example for MySQL:

      shared:
        database:
          allowNonPostgresql: true
          type: mysql
          driver: com.mysql.jdbc.Driver
          url: jdbc:mysql://<your db url, for example: localhost:3306>/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true&useSSL=false
          username: artifactory
          password: password

    For more information about creating and configuring databases, see Set up Database.

  3. Configure Host ID and IP for Container Installations:

    For Podman and other Container Installations, verify that the host's ID (shared.node.id) and IP (shared.node.ip) are explicitly added to the system.yaml. If these are not manually added, they are automatically resolved as the container's IP, meaning other nodes and services will not be able to reach this instance.

    shared:
      node:
        ip: host-ip # Actual IP of the host machine
        id: host-id
  4. Set up Supported Filestores

    The filestore is where Artifactory physically stores the binaries.

    • Single-Node: A local filesystem is the default, but externalizing it (for example, to a dedicated volume) is recommended for easier management and potential migration.
    • High Availability (HA): A shared filestore is mandatory. This can be NFS, S3, Azure Blob Storage, Google Cloud Storage, or another supported object storage solution. All Artifactory nodes in the cluster must have unified and reliable network access to this single shared filestore.

    For more information about configuring filestores, see Set up Filestore.

  5. Configure HA (On Each Artifactory Node)

    For HA installations, you'll ensure that the Artifactory configuration reflects its role in a cluster. A High Availability (HA) installation typically requires at least three or more nodes.

    1. Configure system.yaml for HA

      Edit $JFROG_HOME/artifactory/var/etc/system.yaml on each node.

      • In the node section, set haEnabled to true.
      • taskAffinity set to any indicates that all the nodes in the HA can act as primary nodes.
      shared:
        node:
          haEnabled: true
          taskAffinity: any
    2. Ensure the database section (as configured in Step 2) is also present and identical on all nodes.

  6. Start First Artifactory Node (for Single-Node and HA)

📘

Note

For High Availability installations, it is crucial to ensure the first Artifactory node is fully up and running, and its generated masterKey is copied to all other nodes before starting any subsequent Artifactory services. Failure to do so will prevent the cluster from forming correctly and lead to startup failures.

Run the following command to start the Artifactory service. On the first HA node, Artifactory will initialize the database and potentially generate the master.key if it doesn't already exist.

docker run --name artifactory_1 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-pro:<version>
# Example:
# docker run --name artifactory_1 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-pro:7.111.11
  • For Artifactory Open Source, replace artifactory-pro with artifactory-oss.
  • For Artifactory Community Edition for C/C++, replace artifactory-pro with artifactory-cpp-ce.

For HA Setup

i. Add the License

Once the first Artifactory node (for example, artifactory_1) is fully up and running, add the license through its UI.

ii. Copy master.key to Other Nodes

Copy the master.key file from $JFROG_HOME/artifactory/var/etc/security/ of the first node to the identical path on all other nodes.

iii. Start Remaining Nodes for HA

Once the masterKey is synchronized across all nodes, start the Artifactory service on the remaining nodes:

# Start the second node:
docker run --name artifactory_2 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8083:8081 -p 8084:8082 releases-docker.jfrog.io/jfrog/artifactory-<pro|oss|cpp-ce>:<version>
# Example:
# docker run --name artifactory_2 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8083:8081 -p 8084:8082 releases-docker.jfrog.io/jfrog/artifactory-pro:7.111.11

# Start the third node (if applicable):
docker run --name artifactory_3 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8085:8081 -p 8086:8082 releases-docker.jfrog.io/jfrog/artifactory-<pro|oss|cpp-ce>:<version>
# Example:
# docker run --name artifactory_3 -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8085:8081 -p 8086:8082 releases-docker.jfrog.io/jfrog/artifactory-pro:7.111.11
  1. Monitor Artifactory

    To manage Artifactory using native Docker commands:

    • List running containers:

      docker ps
    • Stop Artifactory container (replace artifactory with your container name, for example, artifactory_1):

      docker stop artifactory
    • Check Artifactory logs:

      docker logs -f artifactory
  2. Access Artifactory UI

    After starting Artifactory, open your browser and go to http://<SERVER_HOSTNAME>:8082/, replacing <SERVER_HOSTNAME> with your server's actual IP address or hostname.

    For HA setup, you will typically access Artifactory through a load balancer that distributes traffic across your HA nodes. Configure your load balancer to direct traffic to http://< ARTIFACTORY_NODE_IP>:8082/ on each node.

  3. Initial Setup

    Upon first access, you'll be guided through an onboarding wizard:

    • Change Default Admin Password: The default credentials are admin/password. Change this immediately.
    • Configure Base URL: Configure the Base URL.
    • Apply Licenses: If you have an Artifactory Pro or Enterprise license, apply it.