<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Takahashi Akari</title>
    <description>The latest articles on DEV Community by Takahashi Akari (@takahashiakari).</description>
    <link>https://dev.to/takahashiakari</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1043196%2F507ce384-62fb-480f-a431-8803b5046489.png</url>
      <title>DEV Community: Takahashi Akari</title>
      <link>https://dev.to/takahashiakari</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/takahashiakari"/>
    <language>en</language>
    <item>
      <title>[For developers] Install Docker on Ubuntu and build a virtual machine</title>
      <dc:creator>Takahashi Akari</dc:creator>
      <pubDate>Wed, 26 Apr 2023 15:56:40 +0000</pubDate>
      <link>https://dev.to/takahashiakari/for-developers-install-docker-on-ubuntu-and-build-a-virtual-machine-4h5c</link>
      <guid>https://dev.to/takahashiakari/for-developers-install-docker-on-ubuntu-and-build-a-virtual-machine-4h5c</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Although it can be used in a production environment, this time we will describe how to build a virtual machine with Ubuntu 22.04LTS (desktop) for development.&lt;br&gt;
Reasons why a virtual machine is necessary include 'I want to quickly create a common environment for the team,' 'I can rebuild it even if it breaks,' and 'I can restore it to its original state even if I make a mistake.'&lt;br&gt;
For the time being, this time, I will describe how to build it quickly.&lt;/p&gt;

&lt;p&gt;*Use Terminal.&lt;/p&gt;
&lt;h1&gt;
  
  
  build environment
&lt;/h1&gt;

&lt;p&gt;It is the environment of the PC at the time of writing the article.&lt;br&gt;
OS: Ubuntu 22.04LTS (Desktop)&lt;br&gt;
CPU: 4Core&lt;br&gt;
Memory: 16GB&lt;br&gt;
Storage: 512MB&lt;/p&gt;

&lt;p&gt;Now let's install Docker.&lt;/p&gt;
&lt;h1&gt;
  
  
  1. Update packages
&lt;/h1&gt;

&lt;p&gt;Update the package to the latest version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo apt update -y
$ sudo apt upgrade -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Install Docker
&lt;/h1&gt;

&lt;p&gt;Install Docker now.&lt;br&gt;
The installation procedure is as follows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
$ sudo apt update -y
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-compose
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker installation is now complete.&lt;/p&gt;

&lt;h1&gt;
  
  
  Make Docker commands available without sudo.
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo group add docker
$ sudo gpasswd -a $USER docker
$ sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that you can use Docker commands without sudo, let's try it out.&lt;/p&gt;

&lt;h1&gt;
  
  
  check docker docker-compose installation
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ docker -v
Docker version 20.10.17, build 100c701

$ docker-compose
docker-compose version 1.29.2, build unknown
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is OK if the version is displayed.&lt;br&gt;
Now, let's install the latest UbuntuOS on Docker.&lt;/p&gt;
&lt;h1&gt;
  
  
  Install the latest UbuntuOS on Docker using docker-compose
&lt;/h1&gt;

&lt;p&gt;Create a directory anywhere here.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ mkdir ~/temp &amp;amp;&amp;amp; cd ~/temp
$ touch docker-compose.yml
$ vim docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make your docker-compose.yml look like this: (simple configuration)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3'
services:
   ubuntu:
     image: ubuntu:latest
     tty: true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Run the latest Ubuntu on Docker using docker-compose
&lt;/h1&gt;

&lt;p&gt;Now, it's finally time to run Ubuntu on Docker.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Wait for a while.&lt;/p&gt;

&lt;h1&gt;
  
  
  Check if Ubuntu is running on docker and log in
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4b671926c5cd ubuntu:latest "bash" 5 minutes ago Up 5 minutes docker_ubuntu_1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One virtual machine is running! Great success&lt;br&gt;
Now let's log into the virtual machine. Copy the above CONTAINER ID and execute the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it 4b671926c5cd /bin/bash
root@4b671926c5cd:/#
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I was able to log in as root! Now let's update the package.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;root@4b671926c5cd:/# apt update -y &amp;amp;&amp;amp; apt upgrade -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can exit the container with "exit".&lt;/p&gt;

&lt;h1&gt;
  
  
  stop the virtual machine
&lt;/h1&gt;

&lt;p&gt;You can't run a virtual machine all the time. Now stop the virtual machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ docker-compose stop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  delete all Docker virtual machines
&lt;/h1&gt;

&lt;p&gt;It can also consume machine resources, so you may need to clear it as well.&lt;br&gt;
I will show you how to delete it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ docker-compose down
$ docker system prune -f -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;that's all.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
