<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Lucas Videlaine – Articles (English)</title>
  <subtitle>Security Consultant &amp; Auditor. Technical audits (web pentest, internal network pentest, architecture review, CI/CD audit) and organisational audits (NIST CSF, ANSSI hygiene guide, ISO 27001, OWASP SAMM). Advisory: virtual CISO (CISO as a Service), training, security awareness and information security policy writing.</subtitle>
  <link href="https://www.videlaine.fr/en/feed.xml" rel="self"/>
  <link href="https://www.videlaine.fr/en/"/>
  <updated>2022-09-24T12:00:00Z</updated>
  <id>https://www.videlaine.fr/en/</id>
  <author>
    <name>Lucas Videlaine</name>
    <uri>https://www.videlaine.fr/</uri>
  </author>
  <entry>
    <title>Control versus Liberalism in Cyberspace 🌌</title>
    <link href="https://www.videlaine.fr/en/posts/control-vs-liberalism-in-cyberspace/"/>
    <updated>2022-09-24T12:00:00Z</updated>
    <id>https://www.videlaine.fr/en/posts/control-vs-liberalism-in-cyberspace/</id>
    <summary>Essay written at TalTech (Legal Aspects of Cyber Security): control or freedom in cyberspace, an ethical reflection on its future and on AI.</summary>
    <content xml:lang="en" type="html">&lt;p&gt;As part of my studies at TalTech - Tallinn University of Technology, I was asked to write an essay on the topic of ‘Control VS. Liberation in Cyberspace’. This reflection was part of the ‘Legal Aspects of Cyber Security’ module, but it is more of an ethical and documented approach to the subject.&lt;br /&gt;
Representing several hours of research and writing, &lt;a href=&quot;https://www.videlaine.fr/assets/docs/law-essay.pdf&quot; target=&quot;_blank&quot;&gt;I am sharing my writing here&lt;/a&gt; in order to open up the debate more widely with you. Please feel free to give me your opinion on the subject, or constructive feedback on the overall drafting of the document, via &lt;a href=&quot;https://twitter.com/LucasVidelaine&quot; target=&quot;_blank&quot;&gt;Twitter for example&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Multi-factor authentication solutions in roaming 🔒</title>
    <link href="https://www.videlaine.fr/en/posts/mutlifactor-authentication-solutions-in-mobility/"/>
    <updated>2022-09-20T12:00:00Z</updated>
    <id>https://www.videlaine.fr/en/posts/mutlifactor-authentication-solutions-in-mobility/</id>
    <summary>MFA for remote workers: key terms (2FA, MFA, OTP), risks to contain, ANSSI guidance for your security policy and an overview of the main MFA vendors.</summary>
    <content xml:lang="en" type="html">&lt;p&gt;MFA is now a major topic within organisations, particularly as they move towards a remote working approach. You hear about it regularly but don&#39;t know exactly what it is? Would you like to find out more? You&#39;ve come to the right place, because in this short, easy-to-understand article, we&#39;ll define the principles and issues related to MFA, particularly in the context of roaming.&lt;/p&gt;
&lt;h2 id=&quot;key-terms-and-concepts&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/mutlifactor-authentication-solutions-in-mobility/#key-terms-and-concepts&quot;&gt;#&lt;/a&gt; Key terms and concepts&lt;/h2&gt;
&lt;p&gt;Let&#39;s start with an overview of the existing vocabulary, so that we can better appreciate what follows!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Digital nomadism:&lt;/strong&gt; Digital nomadism refers to any form of use of information technology that allows a user to access the IT system of their company/organisation or employer from remote locations that are not controlled by the entity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2FA - Two-Factor Authentication:&lt;/strong&gt; Digital nomadism refers to any form of use of information technology that allows a user to access the IT system of their company/organisation or employer from remote locations that are not controlled by the entity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MFA - Multiple Factor Authentication:&lt;/strong&gt; Multi-factor authentication (MFA) is a security process that requires more than two verification factors to prove a user&#39;s identity. These can include biometric factors (facial recognition, fingerprint recognition, etc.), a unique code sent by SMS or email, a unique code generated by a dedicated application, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OTP - One-Time Password:&lt;/strong&gt; Multi-factor authentication (MFA) is a security process that requires more than two verification factors to prove a user&#39;s identity. These can include biometric factors (facial recognition, fingerprint recognition, etc.), a unique code sent by text message or email, a unique code generated by a dedicated app, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Point of vigilance:&lt;/strong&gt; Since 2021, ANSSI, the French National Agency for Information System Security, has distinguished between strong authentication and multi-factor authentication: strong authentication, in this definition, is based on cryptographic mechanisms considered strong but not necessarily on multiple authentication factors.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-challenges&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/mutlifactor-authentication-solutions-in-mobility/#the-challenges&quot;&gt;#&lt;/a&gt; The challenges&lt;/h2&gt;
&lt;p&gt;We can define two key objectives of MFA in the context of nomadic working, each of which can be adapted to the applicable context.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calculate and reduce&lt;/strong&gt; the degree of information exposure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;During business travel (at a hotel, at a client&#39;s premises)&lt;/li&gt;
&lt;li&gt;During commuting (on public transport)&lt;/li&gt;
&lt;li&gt;In public places (in coworking spaces, airports, stations)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Contain&lt;/strong&gt; risks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Loss or theft of equipment&lt;/li&gt;
&lt;li&gt;Compromise of information contained in lost/stolen equipment&lt;/li&gt;
&lt;li&gt;Compromise of equipment (user absent with workstation open)&lt;/li&gt;
&lt;li&gt;Illegal access to the IS&lt;/li&gt;
&lt;li&gt;Interception/alteration of information (data confidentiality/integrity)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The objective of a mobile IS is to achieve a level of security as close as possible to that of the internal IS, by addressing the most significant exposure risks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;regulatory-developments&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/mutlifactor-authentication-solutions-in-mobility/#regulatory-developments&quot;&gt;#&lt;/a&gt; Regulatory developments&lt;/h2&gt;
&lt;p&gt;In order to prevent the risks associated with nomadism and regulate its use, it is important to integrate nomadism into the entity&#39;s Information System Security Policy (ISSP):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Identify the professions eligible for nomadism and teleworking
&lt;ul&gt;
&lt;li&gt;Establish the level of sensitivity of data and activity&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Establish regulatory constraints&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Ensure proper control of nomadic users&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Ensure the management and revocation of accounts and rights of nomadic users
&lt;ul&gt;
&lt;li&gt;Manage mobile nomadic equipment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Raise awareness and train nomadic users&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Warn about the risks associated with theft or compromise of IT equipment&lt;/li&gt;
&lt;li&gt;Warn about information leaks and other indiscretions&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;Dedicate access equipment to an identified nomadic user&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Link each piece of equipment to an identified and referenced nomadic user&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-main-providers&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/mutlifactor-authentication-solutions-in-mobility/#the-main-providers&quot;&gt;#&lt;/a&gt; The main providers&lt;/h2&gt;
&lt;p&gt;The market for MFA solutions is quite extensive. We can quickly list the leaders in the field, but also a few products that also target SMEs.&lt;br /&gt;
Each manufacturer offers its own solution, which can be integrated more or less easily into an existing IT system, either on-premise and/or SaaS.&lt;/p&gt;
&lt;p&gt;These include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft MFA&lt;/li&gt;
&lt;li&gt;Thales SafeNet Trusted Access&lt;/li&gt;
&lt;li&gt;Okta MFA&lt;/li&gt;
&lt;li&gt;OneLogin MFA&lt;/li&gt;
&lt;li&gt;Cisco Duo MFA&lt;/li&gt;
&lt;li&gt;Ping Identity&lt;/li&gt;
&lt;li&gt;Fortinet FortiToken&lt;/li&gt;
&lt;li&gt;inWebo MFA&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;related-resources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/mutlifactor-authentication-solutions-in-mobility/#related-resources&quot;&gt;#&lt;/a&gt; Related resources&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.ssi.gouv.fr/guide/recommandations-sur-le-nomadisme-numerique/&quot; target=&quot;_blank&quot;&gt;Recommendations on digital nomadism&lt;/a&gt; from ANSSI (French National Agency for Information System Security).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Hackers come to the rescue in a sex tape blackmail case 🕵️</title>
    <link href="https://www.videlaine.fr/en/posts/hackers-blackmail-sextape/"/>
    <updated>2022-08-31T11:00:00Z</updated>
    <id>https://www.videlaine.fr/en/posts/hackers-blackmail-sextape/</id>
    <summary>Field report: how we defeated a sextortion attempt run from a stolen Messenger account without paying, plus the security habits to adopt afterwards.</summary>
    <content xml:lang="en" type="html">&lt;p&gt;It was a Friday evening in November when I received a call for help from a mother who was being subjected to odious blackmail. Laure, as we will call her to protect her identity, had been given my contact details by one of her friends with whom I had already had the opportunity to work. She contacted me so that I could try to resolve the unfortunate situation.&lt;/p&gt;
&lt;p&gt;Alongside my engineering studies at ENSIBS engineering school, I am developing an entrepreneurial activity providing cybersecurity services and consulting, but this situation is a first for me! No less motivated and particularly determined to defeat this despicable blackmail, I took stock of the situation, began to establish a context and drew up the premises for an action plan: we will not give in, we will not pay, and we will prevent the publication of the stolen content ✊&lt;/p&gt;
&lt;p&gt;The troublemaker regularly renews his intimidation attempts using Laure&#39;s partner&#39;s stolen Messenger account, which contains photos and videos shared by the couple.&lt;br /&gt;
After several exchanges, I conclude that he is just an opportunist who took advantage of the account&#39;s weak password to set up his ransom demand. While buying time with the attacker, we complete the steps to close the Facebook account.&lt;/p&gt;
&lt;p&gt;Drawing on my experience in crisis management, I advised Laure for over a week, reassuring her and listening to her concerns. I am fully aware of the constant stress she is under and am committed to helping her: people are my priority.&lt;br /&gt;
A few days later, there was relief: the account had been deleted by Facebook support, and the attacker no longer had access to the exchanged content. The attacker, who was likely operating from an internet café, did not take the time to back up his only means of leverage.&lt;/p&gt;
&lt;p&gt;The mission is a success! 🔥 Still reeling from this experience, Laure and her partner ask me at length about the best habits to adopt to avoid going through this again:&lt;/p&gt;
&lt;p&gt;✔️ Use passwords that are sufficiently long and include upper-case letters, lower-case letters, numbers, and special characters.&lt;br /&gt;
✔️ Use a different password for each of your accounts (use a password manager such as KeePass, Dashlane, or 1Password).&lt;br /&gt;
✔️ Enable and configure multi-factor authentication whenever possible.&lt;br /&gt;
✔️ Favour the use of secure messaging apps such as Signal.&lt;/p&gt;
&lt;h2 id=&quot;related-resources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/hackers-blackmail-sextape/#related-resources&quot;&gt;#&lt;/a&gt; Related resources&lt;/h2&gt;
&lt;p&gt;The full article published in a local newspaper (in French) &lt;a href=&quot;https://www.videlaine.fr/assets/docs/hackers-rennais.pdf&quot; target=&quot;_blank&quot;&gt;&amp;quot;Hackers Rennais&amp;quot;&lt;/a&gt; in PDF format.&lt;br /&gt;
&lt;a href=&quot;https://www.videlaine.fr/assets/docs/des-hackers-au-secours-d-un-chantage-a-la-sextape.pdf&quot; target=&quot;_blank&quot;&gt;The article in Le Télégramme newspaper&lt;/a&gt; in PDF format.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Memo - Docker commands 🐳</title>
    <link href="https://www.videlaine.fr/en/posts/memo-docker-commands/"/>
    <updated>2022-07-28T00:00:00Z</updated>
    <id>https://www.videlaine.fr/en/posts/memo-docker-commands/</id>
    <summary>Docker cheat sheet: key concepts (containers, images, Dockerfile, Compose, volumes) and the essential commands to create, run, list and remove containers.</summary>
    <content xml:lang="en" type="html">&lt;p&gt;Docker is free software that allows applications to be launched in software containers.&lt;br /&gt;
It is not virtualisation, but containerisation, a lighter form that relies on certain parts of the host machine for its operation. This approach increases the flexibility and portability of an application&#39;s execution, which will be able to run reliably and predictably on a wide variety of host machines, whether on the local machine, a private or public cloud, a bare machine, etc.&lt;br /&gt;
Technically, Docker extends the standard Linux container format, LXC, with a high-level API that provides a practical virtualisation solution that runs processes in isolation. To do this, Docker uses LXC, cgroups, and the Linux kernel itself, among other things. Unlike traditional virtual machines, a Docker container does not include an operating system, but instead relies on the operating system features provided by the host machine.&lt;/p&gt;
&lt;h2 id=&quot;vocabulary-definition&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#vocabulary-definition&quot;&gt;#&lt;/a&gt; Vocabulary definition&lt;/h2&gt;
&lt;h3 id=&quot;containers&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#containers&quot;&gt;#&lt;/a&gt; Containers&lt;/h3&gt;
&lt;p&gt;Unlike traditional virtual machines, a Docker container does not include a guest operating system. Instead, it relies on the host kernel&#39;s features and leverages resource isolation (CPU, memory, I/O, network connections, etc.).&lt;/p&gt;
&lt;h3 id=&quot;images&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#images&quot;&gt;#&lt;/a&gt; Images&lt;/h3&gt;
&lt;p&gt;A Docker image represents the file system, without the processes. It contains everything you have decided to install on it, such as a database system, a web server, a Python application, etc. Images are created from configuration files, called ‘Dockerfiles’, which describe exactly what needs to be installed in the container. A container therefore corresponds to the execution of a specific image.&lt;/p&gt;
&lt;h3 id=&quot;dockerfiles&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#dockerfiles&quot;&gt;#&lt;/a&gt; Dockerfiles&lt;/h3&gt;
&lt;p&gt;The Dockerfile is your source file that enables the construction of an image. A Dockerfile can be included in other Dockerfiles and serve as the basis for several different images. You can choose to use official images, modified images, which you can find on &lt;a href=&quot;https://hub.docker.com/&quot;&gt;Docker Hub&lt;/a&gt; or other image repositories, but you can also choose to customise your own images by writing a Dockerfile.&lt;/p&gt;
&lt;h3 id=&quot;compose&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#compose&quot;&gt;#&lt;/a&gt; Compose&lt;/h3&gt;
&lt;p&gt;Compose is a tool for defining and running multi-container applications. Since containers are ideal for microservice-based applications, it becomes necessary to manage the various containers and their interconnections.&lt;/p&gt;
&lt;h3 id=&quot;volumes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#volumes&quot;&gt;#&lt;/a&gt; Volumes&lt;/h3&gt;
&lt;p&gt;Volumes are a mechanism that enables the persistence of data generated by and used by Docker containers. Docker volumes offer numerous advantages, such as ease of backup and migration, as well as simplified management thanks to Docker tools and commands.&lt;/p&gt;
&lt;h3 id=&quot;kubernetes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#kubernetes&quot;&gt;#&lt;/a&gt; Kubernetes&lt;/h3&gt;
&lt;p&gt;Kubernetes is an open-source system that aims to provide a platform for automating the deployment, scaling, and implementation of containers.&lt;/p&gt;
&lt;h2 id=&quot;essential-commands&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#essential-commands&quot;&gt;#&lt;/a&gt; Essential commands&lt;/h2&gt;
&lt;h3 id=&quot;various-information-about-docker&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#various-information-about-docker&quot;&gt;#&lt;/a&gt; Various information about Docker&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker info
docker version
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;create-and-start-a-container&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#create-and-start-a-container&quot;&gt;#&lt;/a&gt; Create and start a container&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker run [image_name]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;stop-a-container&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#stop-a-container&quot;&gt;#&lt;/a&gt; Stop a container&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker stop [container_id]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;start-a-container&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#start-a-container&quot;&gt;#&lt;/a&gt; Start a container&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker start [container_id]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;delete-a-container&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#delete-a-container&quot;&gt;#&lt;/a&gt; Delete a container&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker rm [container_id]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;list-started-containers-and-list-all-containers&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#list-started-containers-and-list-all-containers&quot;&gt;#&lt;/a&gt; List started containers and list all containers&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker ps 
docker ps -a
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;stop-all-containers&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#stop-all-containers&quot;&gt;#&lt;/a&gt; Stop all containers&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker stop $(docker  ps -a -q)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;start-all-containers&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#start-all-containers&quot;&gt;#&lt;/a&gt; Start all containers&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker start $(docker ps -a -q)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;delete-all-containers-(after-stopping-them)&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#delete-all-containers-(after-stopping-them)&quot;&gt;#&lt;/a&gt; Delete all containers (after stopping them)&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker rm $(docker  ps -a -q)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;list-local-images-(pulled-or-built)&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#list-local-images-(pulled-or-built)&quot;&gt;#&lt;/a&gt; List local images (pulled or built)&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;delete-one-or-more-images&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#delete-one-or-more-images&quot;&gt;#&lt;/a&gt; Delete one or more images&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker rmi [image_id] [image_id] ...
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;building-an-image-from-a-dockerfile&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#building-an-image-from-a-dockerfile&quot;&gt;#&lt;/a&gt; Building an image from a Dockerfile&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker build -t [wanted_image_name] -f [path_to_dockerfile]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;run-a-docker-compose-file-in-detached-mode&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#run-a-docker-compose-file-in-detached-mode&quot;&gt;#&lt;/a&gt; Run a docker-compose file in detached mode&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker-compose -d -f [path_to_docker-compose-file]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;run-a-command-within-a-container&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#run-a-command-within-a-container&quot;&gt;#&lt;/a&gt; Run a command within a container&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker exec -it [container_id] [command]
docker exec -it [container_id] bash
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;display-the-logs-of-a-container&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#display-the-logs-of-a-container&quot;&gt;#&lt;/a&gt; Display the logs of a container&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker logs [container_id]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://www.videlaine.fr/en/posts/memo-docker-commands/#sources&quot;&gt;#&lt;/a&gt; Sources&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.docker.com/engine/reference/commandline/docker/&quot; target=&quot;_blank&quot;&gt;Official documentation&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://lucasvidelaine.wordpress.com/2018/01/26/memo-commandes-docker/&quot; target=&quot;_blank&quot;&gt;My original article from 2018&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
</feed>
