Yksittäisen Docker-kontin tulee pohjautua luotettavaan pohjakuvaan (base image), johon on kontin rakennusvaiheessa asennettu ohjelmistoja vain luotetuista lähteistä. Lähteiden luotettavuus voi perustua kryptografisten allekirjoitusten tarkastamiseen tai siihen, että lähteet ovat organisaation hallussa.

Konteissa kannattaa käyttää organisaation yhdessä sovittuja pohjakuvia keskitetyn haavoittuvuuksien hallinnan mahdollistamiseksi.

Jos pohjakuvia tuottavaan organisaatioon luotetaan, tulisi ensisijaisesti ottaa käyttöön tunniste, joka ottaa uusimman minor-version pohjakuvasta. Tällöin jokaisessa buildissa saadaan pohjakuvan tietoturvakorjaukset automaattisesti. Viittaaminen uusimpaan pohjakuvan versioon latest-määreellä ei ole sallittua.

Docker-konttien pohjakuva voidaan vaihtoehtoisesti kiinnittää tiettyyn versioon käyttämällä SHA-256 -tiivistearvoa, jos halutaan suojautua rikkovia muutoksia tai pohjakuvan mukana tulevaa haitallista koodia vastaan. Tätä kiinnitystapaa käytettäessä tulee versiot päivittää vähintään kerran kuukaudessa tai, kun pohjakuvassa on hyväksikäytettävissä olevia haavoittuvuuksia.

Alla on esimerkki hyväksytystä tavasta kiinnittää peruskuva tiettyyn versioon:

FROM alpine@sha256:3dcdb92d7432d56604d4545cbd324b14e647b313626d99b889d0626de158f73a

Kaikkien konttiin asennettavien ohjelmistojen eheys pitää varmistaa, kun kontteja rakennetaan Dockerfile-tiedostojen avulla. Mikäli Dockerfile-tiedosto hakee ohjelmiston ei-luotetusta lähteestä, niin samaa Dockerfile-tiedostoa ei pitäisi käyttää eheystarkistukseen tarvittavien avainten hakemiseen vastaavasta ei-luotetusta lähteestä.

Sovellukseen liittyvien riippuvuuksien asentamista suositellaan paikallisesta säilöstä (repository). Tämä mahdollistaa paremman versiohallinnan riippuvuuksien hallinnointiin, muutoshallintaprosessin harjoittamisen sekä Docker-konttien rakentamisen, vaikka kolmansien osapuolien säilöt eivät olisi saatavilla.

Docker-kontteja pitää aina ajaa read-only -tiedostojärjestelmällä, ellei ole erittäin painavaa syytä päättää toisin.

Docker-konttia ei saa koskaan ajaa --privileged-asetuksella eikä kontille saa antaa pääsyä docker.sock-hallintaliittymään. Docker-kontin pääsy isäntäkoneen tiedostojärjestelmään ja verkkoon tulee rajata mahdollisimman pieneksi. Tämä tarkoittaa esimerkkiksi sitä, että pilvipalveluntarjoajan virtuaalikoneille tarjoamaa metadata-rajapinnan kutsuminen kontista ei ole mahdollista.

Kun käytetään sellaista orkestrointijärjestelmää, joka tarjoaa ns. overlay-verkon käyttämistä, konttien verkkoliikenne pitää rajata vain niihin kohteisiin, jotka ovat välttämättömiä kontin toiminnan kannalta.  Esimerkiksi Kubernetes tuntee tämän nimellä NetworkPolicy.

Kun Dockeria tai orkestrointia käyttävälle järjestelmälle tehdään tietoturva-arviointi, Dockerfile-tiedoston ja orkestrointijärjestelmän määrittelytiedostojen tarkastukset on aina sisällytettävä osaksi tietoturva-arviointia.