diff --git a/README.md b/README.md
index 2a031db91..584bf2ff7 100644
--- a/README.md
+++ b/README.md
@@ -177,7 +177,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [heatcluster](https://hub.docker.com/r/staphb/heatcluster)
[![docker pulls](https://badgen.net/docker/pulls/staphb/heatcluster)](https://hub.docker.com/r/staphb/heatcluster) |
- [1.0.2c](./heatcluster/1.0.2c/)
| https://github.com/DrB-S/heatcluster/tree/main |
| [hmmer](https://hub.docker.com/r/staphb/hmmer)
[![docker pulls](https://badgen.net/docker/pulls/staphb/hmmer)](https://hub.docker.com/r/staphb/hmmer) | - [3.3](hmmer/3.3/)
- [3.3.2](hmmer/3.3.2/)
- [3.4](./hmmer/3.4/)
| http://hmmer.org/ |
| [homopolish](https://hub.docker.com/r/staphb/homopolish)
[![docker pulls](https://badgen.net/docker/pulls/staphb/homopolish)](https://hub.docker.com/r/staphb/homopolish) | | https://github.com/ythuang0522/homopolish/ |
-| [htslib](https://hub.docker.com/r/staphb/htslib)
[![docker pulls](https://badgen.net/docker/pulls/staphb/htslib)](https://hub.docker.com/r/staphb/htslib) | - [1.14](./htslib/1.14)
- [1.15](./htslib/1.15)
- [1.16](./htslib/1.16)
- [1.17](./htslib/1.17)
- [1.18](./htslib/1.18/)
- [1.19](./htslib/1.19/)
- [1.20](./htslib/1.20/)
- [1.20.c](./htslib/1.20.c/)
| https://www.htslib.org/ |
+| [htslib](https://hub.docker.com/r/staphb/htslib)
[![docker pulls](https://badgen.net/docker/pulls/staphb/htslib)](https://hub.docker.com/r/staphb/htslib) | - [1.14](./htslib/1.14)
- [1.15](./htslib/1.15)
- [1.16](./htslib/1.16)
- [1.17](./htslib/1.17)
- [1.18](./htslib/1.18/)
- [1.19](./htslib/1.19/)
- [1.20](./htslib/1.20/)
- [1.20.c](./htslib/1.20.c/)
- [1.21](./htslib/1.21/)
| https://www.htslib.org/ |
| [iqtree](https://hub.docker.com/r/staphb/iqtree/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/iqtree)](https://hub.docker.com/r/staphb/iqtree) | | http://www.iqtree.org/ |
| [iqtree2](https://hub.docker.com/r/staphb/iqtree2/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/iqtree2)](https://hub.docker.com/r/staphb/iqtree2) | - 2.1.2
- 2.2.2.2
- [2.2.2.6](iqtree2/2.2.2.6/)
- [2.2.2.7](iqtree2/2.2.2.7/)
- [2.3.1](iqtree2/2.3.1/)
- [2.3.4](iqtree2/2.3.4/)
| http://www.iqtree.org/ |
| [IPA](https://hub.docker.com/r/staphb/pbipa)
[![docker pulls](https://badgen.net/docker/pulls/staphb/pbipa)](https://hub.docker.com/r/staphb/pbipa) | | https://github.com/PacificBiosciences/pbipa |
diff --git a/htslib/1.21/Dockerfile b/htslib/1.21/Dockerfile
new file mode 100644
index 000000000..47f42bfc8
--- /dev/null
+++ b/htslib/1.21/Dockerfile
@@ -0,0 +1,97 @@
+# for easy upgrade later. ARG variables only persist during build time
+ARG HTSLIB_VER="1.21"
+
+FROM ubuntu:jammy as builder
+
+ARG HTSLIB_VER
+
+# install dependencies, cleanup apt garbage
+# It's helpful when they're all listed on https://github.com/samtools/htslib/blob/develop/INSTALL
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ make \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ perl \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ libdeflate-dev \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# get htslib, compile, install, run test suite
+RUN wget -q https://github.com/samtools/htslib/releases/download/${HTSLIB_VER}/htslib-${HTSLIB_VER}.tar.bz2 && \
+ tar -vxjf htslib-${HTSLIB_VER}.tar.bz2 && \
+ rm -v htslib-${HTSLIB_VER}.tar.bz2 && \
+ cd htslib-${HTSLIB_VER} && \
+ ./configure && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+ARG HTSLIB_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="htslib"
+LABEL software.version="${HTSLIB_VER}"
+LABEL description="A C library for reading/writing high-throughput sequencing data"
+LABEL website="https://github.com/samtools/htslib"
+LABEL license="https://github.com/samtools/htslib/blob/develop/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install runtime dependencies & cleanup apt garbage
+# installed as recommend here: https://github.com/samtools/htslib/blob/develop/INSTALL#L31
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ bzip2 \
+ zlib1g \
+ libbz2-1.0 \
+ liblzma5 \
+ libcurl3-gnutls \
+ libdeflate0 \
+ ca-certificates \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in htslib executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+COPY --from=builder /usr/local/lib/ /usr/local/lib/
+COPY --from=builder /usr/local/include/ /usr/local/include/
+
+# set locale settings for singularity compatibility
+ENV LC_ALL=C
+
+# set working directory
+WORKDIR /data
+
+# default command is to show help options
+CMD ["htsfile", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# check that these three executables are available
+RUN bgzip --help && tabix --help && htsfile --help
+
+RUN apt-get update && apt-get install --no-install-recommends -y wget
+
+# use on actual files
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ gunzip SRR13957123_1.fastq.gz && \
+ bgzip SRR13957123_1.fastq
+
+# FYI Test suite "make test" now performed in the builder stage since app and
+# test stages do not include htslib source code.
+# This is to avoid having to re-download source code simply to run test suite
\ No newline at end of file
diff --git a/htslib/1.21/README.md b/htslib/1.21/README.md
new file mode 100644
index 000000000..1b505f02c
--- /dev/null
+++ b/htslib/1.21/README.md
@@ -0,0 +1,35 @@
+# htslib container
+
+Main tool: [htslib](https://www.htslib.org/)
+
+Code repository: https://github.com/samtools/htslib
+
+Additional tools:
+
+* perl 5.34.0
+
+Basic information on how to use this tool:
+- executable: htsfile
+- help: --help
+- version: --version
+- description: The htsfile utility attempts to identify what kind of high-throughput sequencing data files the specified files are, and provides minimal viewing capabilities for some kinds of data file.
+
+Additional information:
+
+This container includes htslib v1.21 compiled with **libdeflate** for a better cloud performance.
+
+Full documentation: https://www.htslib.org/doc/samtools.html
+
+## Example Usage
+
+```bash
+# determine file formats for various BAM and SAM files
+$ htsfile tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam
+tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam: BAM version 1 compressed sequence data
+
+$ htsfile ce_tag_padded.sam
+ce_tag_padded.sam: SAM version 1.4 sequence text
+
+# compresses sample.fastq to sample.fastq.gz in BGZF format (blocked GNU Zip Format)
+$ bgzip sample.fastq
+```