Step 1: Download JFrog Artifactory Docker image

There are different editions of JFrog Artifactory available, check the Comparison Matrix. If you’re not sure, install the OSS (Open Source Software) version. For more features, you can consider the Pro.

Pull the latest Docker image of JFrog Artifactory.

  1. docker pull docker.bintray.io/jfrog/artifactory-oss:latest
  2. docker pull docker.bintray.io/jfrog/artifactory-cpp-ce

Confirm Docker images:

  1. $ docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. docker.bintray.io/jfrog/artifactory-cpp-ce latest 24d943a892ac 43 hours ago 582MB
  4. docker.bintray.io/jfrog/artifactory-oss latest 58d49856785f 43 hours ago 582MB

Step 2: Create Data Directory

Create data directory on host system to ensure data used on container is persistent.

  1. sudo mkdir -p /jfrog/artifactory
  2. sudo chown -R 1030 /jfrog/

Step 3: Start JFrog Artifactory container

To start an Artifactory container, use the command:

  1. docker run --name artifactory -d \
  2. -p 8081:8081 \
  3. -p 8082:8082 \
  4. -v /jfrog/artifactory:/var/opt/jfrog/artifactory \
  5. docker.bintray.io/jfrog/artifactory-oss:latest

Check container status:

  1. $ docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 1ca55e851bd3 docker.bintray.io/jfrog/artifactory-oss:latest "/entrypoint-artifac…" 4 seconds ago Up 2 seconds 0.0.0.0:8081-8082->8081-8082/tcp, :::8081-8082->8081-8082/tcp artifactory
  4. ubuntu@lorna-ubuntu20:~$ docker ps

You can pass Java system properties to the JVM running Artifactory using EXTRA_JAVA_OPTIONS. Check more on Docker setup link. See example below.

  1. docker run --name artifactory -d \
  2. -p 8081:8081 \
  3. -p 8082:8082 \
  4. -v /jfrog/artifactory:/var/opt/jfrog/artifactory \
  5. -e EXTRA_JAVA_OPTIONS='-Xms512m -Xmx2g -Xss256k -XX:+UseG1GC' \
  6. docker.bintray.io/jfrog/artifactory-pro:latest

Step 4: Running JFrog Artifactory container with Systemd

Systemd is the default init system for Ubuntu20.04|18.04|16.04. We can use it to manage JFrog Artifactory container.

Create Artifactory service unit file.

  1. sudo vim /etc/systemd/system/artifactory.service
  2. Add:
  3. [Unit]
  4. Description=Setup Systemd script for Artifactory Container
  5. After=network.target
  6. [Service]
  7. Restart=always
  8. ExecStartPre=-/usr/bin/docker kill artifactory
  9. ExecStartPre=-/usr/bin/docker rm artifactory
  10. ExecStart=/usr/bin/docker run --name artifactory -p 8081:8081 -p 8082:8082 \
  11. -v /jfrog/artifactory:/var/opt/jfrog/artifactory \
  12. docker.bintray.io/jfrog/artifactory-oss:latest
  13. ExecStop=-/usr/bin/docker kill artifactory
  14. ExecStop=-/usr/bin/docker rm artifactory
  15. [Install]
  16. WantedBy=multi-user.target
  17. Reload systemd.
  18. sudo systemctl daemon-reload
  19. Then start Artifactory container with systemd.
  20. sudo systemctl start artifactory
  21. Enable it to start at system boot.
  22. sudo systemctl enable artifactory
  23. Status can be checked with:
  24. sudo systemctl status artifactory
  25. Sample output:
  26. artifactory service status docker
  27. Also check service binding with:
  28. $ ss -tunelp | grep 8081
  29. tcp LISTEN 0 128 *:8081 *:* users:(("docker-proxy",pid=2820,fd=4)) ino:117162 sk:b v6only:0 <->

Step 5: Access Artifactory Web Interface

Artifactory can be accessed using the following URL:

http://SERVERIP_OR_DOMAIN:8081/artifactory You should see Artifactory welcome page.

welcome to artifactory Follow setup instructions that follows.

Artifactory create repositories Artifactory finish installation Once you complete JFrog Artifactory on Ubuntu 18.04, you should get to Administration dashboard.

Artifactory complete installation Step 7: Configure Nginx reverse proxy (Optional) If you want to use Nginx as Proxy with SSL, check out the guide below:

Configure JFrog Artifactory behind Nginx reverse proxy and Let’s Encrypt SSL

Conclusion JFrog Artifactory is a Universal Repository Manager supporting all major packaging formats, build tools and CI servers. Visit the Artifactory Documentation for more features and usage guides.