උබුන්ටු මත Docker රූප නිර්මාණය සහ කළමනාකරණය සඳහා සම්පූර්ණ මාර්ගෝපදේශය | ස්ථාපනය, උපරිම කිරීම, සහ ගැටළු විසඳීම

目次

1. හැඳින්වීම

Docker යනු කුමක්ද?

Docker යනු container-based virtualization technology භාවිතා කරමින් යෙදුම් කාර්යක්ෂමව සංවර්ධනය කිරීම, විතරණය කිරීම සහ ධාවනය කිරීම සඳහා platform එකකි. සාම්ප්‍රදායික virtual machines (VMs) වලින් වෙනස්ව, containers host OS kernel එක බෙදාගනිමින් වේගවත් startup times සහ අඩු resource consumption ලබා දෙයි.

Ubuntu හි Docker භාවිතා කිරීමේ වාසි

Ubuntu යනු Docker සමඟ ඉහළ අනුකූලතාවයක් ඇති Linux distributions එකකි. ප්‍රධාන වාසි පහත පරිදි වේ:

  • අධිකාරී සහාය : Docker Ubuntu සඳහා අධිකාරී සහාය ලබා දෙන අතර, official repository ඔස්සේ ස්ථාපනය පහසුය.
  • ස්ථාවර Package Management : Ubuntu හි APT package manager Docker versions කළමනාකරණය කිරීම පහසු කරයි.
  • විස්තීර්ණ Community Support : Ubuntu හි විශාල global user base එකක් ඇති නිසා, troubleshooting issues විසඳීමේදී solutions සොයා ගැනීම පහසුය.

මෙම ලිපියෙන් ඔබ ඉගෙන ගන්නා දේ

මෙම ලිපිය ඔබව පහත topics step by step මගින් මඟ පෙන්වයි:

  1. Ubuntu හි Docker ස්ථාපනය කිරීම කෙසේද
  2. Basic Docker image operations
  3. Dockerfile භාවිතා කරමින් custom images නිර්මාණය කිරීම
  4. Ubuntu container එකක Japanese language environment සකස් කිරීම
  5. Docker images හි size optimize කිරීම සහ අඩු කිරීම
  6. Ubuntu container එකක යෙදුම් සංවර්ධනය
  7. සුලබ errors සහ troubleshooting solutions

මෙම මාර්ගෝපදේශය beginners සහ advanced users දෙදෙනාටම ගුණදායක වන අතර, එය reference එකක් ලෙස භාවිතා කිරීමට ස්වාධීන වන්න.

2. Ubuntu හි Docker ස්ථාපනය

Official Repository භාවිතා කරමින් Docker ස්ථාපනය

Ubuntu හි, official repository භාවිතා කරමින් Docker ස්ථාපනය කිරීම පහසුය. පහත steps අනුගමනය කරන්න.

1. Existing Docker Packages ඉවත් කිරීම

Ubuntu default ලෙස docker.io නම් package එකක් ලබා දෙයි, නමුත් එය outdated version එකක් විය හැක. එය පළමුව ඉවත් කිරීම උපදෙස් කෙරේ.

sudo apt remove docker docker-engine docker.io containerd runc

2. අවශ්‍ය Packages ස්ථාපනය

Docker ස්ථාපනයට පෙර, අවශ්‍ය dependency packages ස්ථාපනය කරන්න.

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

3. Official Docker Repository එකතු කිරීම

Docker හි official GPG key එකතු කරන්න සහ repository setup කරන්න.

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 > /dev/null

4. Docker ස්ථාපනය

Repository එකතු කළ පසු, Docker ස්ථාපනය කරන්න.

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

5. ස්ථාපනය තහවුරු කිරීම

Docker නිවරදිව ස්ථාපිත වී ඇත්දැයි පරීක්ෂා කිරීමට, version information පෙන්වන්න.

docker --version

ස්ථාපනයෙන් පසු Initial Setup

1. Docker Service ආරම්භ කිරීම සහ Enable කිරීම

Docker service ආරම්භ කරන්න සහ system startup හි automatically run වන ලෙස configure කරන්න.

sudo systemctl start docker
sudo systemctl enable docker

2. Non-root Users Docker භාවිතා කිරීමට Allow කිරීම

Default ලෙස, root user පමණක් Docker run කළ හැක. සාමාන්‍ය user එකක Docker commands භාවිතා කිරීමට, user එක docker group එකට එකතු කරන්න.

sudo usermod -aG docker $USER

Changes apply කිරීමට, log out වී log back in වන්න.

3. Docker Test කිරීම

hello-world container run කරන්න Docker නිවරදිව ක්‍රියා කරන බව පරීක්ෂා කිරීමට.

docker run hello-world

ඔබ “Hello from Docker!” message එක දකිනවා නම්, ස්ථාපනය සාර්ථකය.

3. Docker Images සමඟ Basic Operations

Docker Image එකක් යනු කුමක්ද?

Docker image එක containers නිර්මාණය කිරීම සඳහා template එකක් ලෙස ක්‍රියා කරයි. Ubuntu-based Docker image එකක් භාවිතා කරමින්, container එකක් තුළ Ubuntu environment එක ඉක්මනින් setup කළ හැක.

Docker Hub වෙතින් Ubuntu Images Download කිරීම

Docker Hub official Docker images හි විශාල collection එකක් host කරයි. Ubuntu image එක download කිරීමට, පහත command භාවිතා කරන්න:

docker pull ubuntu

Containers Starting සහ Stopping

ඔබට බාගත කළ Ubuntu රූපය භාවිතා කර පූරණයක් ආරම්භ කළ හැක පහත කමාන්ඩ් එකෙන්:

docker run -it ubuntu bash

මෙම කමාන්ඩ් එක Ubuntu පූරණය තුළ ශෙල් එකක් විවෘත කරයි, ඔබට එය සෘජුවම අන්තර්ක්‍රියා කිරීමට ඉඩ දේ.

ධාවන පූරණ ලැයිස්තුව

දැනට ධාවනය වන පූරණ කුමදැයි පරීක්ෂා කිරීමට, මෙම කමාන්ඩ් එක භාවිතා කරන්න:

docker ps

නවතා ඇති පූරණ ඇතුළු සියලු පූරණ පෙන්වීමට, -a විකල්පය එක් කරන්න:

docker ps -a

පූරණ නවත්වීම සහ ඉවත් කිරීම

ධාවන පූරණයක් නවත්වීමට, පහත කමාන්ඩ් එක භාවිතා කරන්න:

docker stop [container ID or name]

අවශ්‍ය නොවන පූරණයක් ඉවත් කිරීමට, මෙම කමාන්ඩ් එක භාවිතා කරන්න:

docker rm [container ID or name]

Docker රූප කළමනාකරණය

බාගත කළ සියලු Docker රූප ලැයිස්තුගත කිරීමට, පහත කමාන්ඩ් එක භාවිතා කරන්න:

docker images

භාවිතා නොකළ රූපයක් ඉවත් කිරීමට, මෙම කමාන්ඩ් එක භාවිතා කරන්න:

docker rmi [image ID]

4. Dockerfile සමඟ අභිරුචි Docker රූප නිර්මාණය

Dockerfile යනු කුමක්ද?

Dockerfile යනු Docker රූප නිර්මාණය සඳහා භාවිතා කරන වින්‍යාස ගොනුවකි. Dockerfile එකේ විශේෂ නියෝග නිරූපණය කිරීමෙන්, ඔබේ අවශ්‍යතා අනුව අභිරුචි Docker රූප සාදන්න පුළුවන්. මෙය සංවර්ධන පරිසරයන් සම්මත කර ගැනීමට සහ රූපයට අවශ්‍ය පැකේජ ඇතුළත් කිරීමට උපකාරී වේ.

Dockerfile එකේ මූලික ව්‍යවස්ථාව

Dockerfile එක සාමාන්‍යයෙන් පහත ප්‍රධාන නියෝග ඇතුළත් කරයි:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefines the default command to run when the container starts
ENTRYPOINTSpecifies the main command executed when the container runs

අභිරුචි Ubuntu-අධාරිත Docker රූපයක් නිර්මාණය කිරීම

Ubuntu මත පදනම් වූ අභිරුචි Docker රූපයක් නිර්මාණය කිරීමට මෙම පියවර අනුගමනය කරන්න.

1. වැඩ කරන නාමාවලියක් සාදන්න

පළමුව, නව ව්‍යාපෘති නාමාවලියක් සාදලා එයට යන්න.

mkdir my-ubuntu-image
cd my-ubuntu-image

2. Dockerfile එකක් සාදන්න

නාමාවලියේ ඇතුළත, Dockerfile එකක් සාදලා පහත අන්තර්ගතය එක් කරන්න:

# Use the official Ubuntu base image
FROM ubuntu:latest

# Maintainer information (optional)
LABEL maintainer="your-email@example.com"

# Update package lists and install basic tools
RUN apt update && apt install -y curl vim git

# Set the working directory
WORKDIR /workspace

# Default command executed when the container starts
CMD ["bash"]

3. Docker රූපය ගොඩනඟන්න

Dockerfile එකෙන් අභිරුචි රූපය ගොඩනගීමට පහත කමාන්ඩ් එක භාවිතා කරන්න.

docker build -t my-ubuntu-image .

-t විකල්පය රූපයට නාමයක් ලබා දෙයි.

4. ගොඩනගා ඇති රූපය තහවුරු කරන්න

නව රූපය සාර්ථක නිර්මාණය වී ඇති බව තහවුරු කිරීමට ලබාගත හැකි රූප ලැයිස්තුව පරීක්ෂා කරන්න.

docker images

5. අභිරුචි රූපයෙන් පූරණයක් ක්‍රියාත්මක කරන්න

නව නිර්මාණය කළ අභිරුචි රූපය භාවිතා කර පූරණයක් ආරම්භ කරන්න.

docker run -it my-ubuntu-image

Dockerfile එකේ සඳහන් පරිදි, මෙම පූරණය curl සහ vim වැනි මෙවලම් ඇතුළත් කර තිබිය යුතුය.

5. Ubuntu පූරණයේ ජපන් භාෂා පරිසරය සැකසීම

පෙරනිමියෙන්, Ubuntu Docker රූපය ඉංග්‍රීසි ලෙස සකසා ඇත. ඔබට ජපන් භෂාව භාවිතා කිරීමට අවශ්‍ය නම්, අතිරේක සැකසුම් අවශ්‍ය වේ.

ජපන් භාෂා පරිසරය සසීම

Ubuntu පූරණයේ ජපන් දර්ශනය සහ ඇතුළත් කිරීම සක්‍රිය කිරීමට, අවශ්‍ය භාෂා පැකේජ ස්ථාපනය කරන්න.

1. අවශ්‍ය පැකේජ ස්ථාපනය කරන්න

apt update
apt install -y language-pack-ja locales

2. පරිසරය වින්‍යාස කරන්න

පරිසරය සකසා සැකසුම් යොදන්න.

locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

3. සැකසුම් යොද

export LANG=ja_JP.UTF-8

ජපන් ඇතුළත් කිරීම සකසීම

ටර්මිනලයේ ජපන් පෙළ ඇතුළත් කිරීම සක්‍රිය කිරීමට, ibus-mozc ස්ථාපනය කරන්න.

apt install -y ibus-mozc

ඔබ GUI පරිසරයක් භාවිතා කරනවා නම්, පහත පරිසර විචල්‍යයන් එක් කරන්න:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

GUI යෙදුම් භාවිතා කිරීම

Docker පූරණයක් තුළ GUI යෙදුම් ක්‍රියාත්මක කිරීමට, X සේවාදායකයක් භාවිතා කළ හැක.

හෝස්ට් යන්ත්‍රයේ X සේවාදායකයක් ස්ථාපනය කර, X11 සක්‍රිය කර පූරණය ක්‍රියාත්මක කරන්න.

docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image

6. Docker රූප වල ප්‍රමාණය අඩු කිරීම සහ කාර්යක්ෂම කිරීම

Optimizing Docker images improves container startup speed and reduces storage usage. This section introduces methods for creating lightweight images.

Creating a Lightweight Ubuntu-Based Image

The default ubuntu:latest image is relatively large. To reduce the container size, consider using a smaller alternative like ubuntu:minimal.

FROM ubuntu:minimal

Alternatively, you can use Alpine Linux, which is significantly smaller than Ubuntu.

FROM alpine:latest
RUN apk add --no-cache bash curl

This method can reduce the image size by several hundred megabytes.

Removing Unnecessary Files to Reduce Image Size

After installing packages with apt-get, you can remove unnecessary cache files to minimize the image size.

RUN apt update && apt install -y curl vim 
    && apt clean 
    && rm -rf /var/lib/apt/lists/*

The rm -rf /var/lib/apt/lists/* command deletes the package list, reducing unnecessary data.

Using Multi-Stage Builds

With multi-stage builds, you can use a temporary container for building dependencies while keeping the final image lightweight.

FROM ubuntu as builder
RUN apt update && apt install -y gcc

FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc

This technique allows you to exclude unnecessary development tools from the final image, making it significantly smaller.

7. Practical Guide: Developing Applications in an Ubuntu Container

In this section, we will set up a development environment inside an Ubuntu container and demonstrate how to develop applications using Docker.

Setting Up a Python Development Environment

To create a Python development environment inside a Docker container, use the following Dockerfile.

FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]

Build the image and run the container.

docker build -t python-dev .
docker run -it python-dev

Inside the container, you can execute the python3 command to run Python scripts and develop applications.

Setting Up a Node.js Development Environment

For Node.js development, use the following Dockerfile.

FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]

Build and run the container.

docker build -t node-dev .
docker run -it node-dev

With this setup, you can use the node command to execute JavaScript code and develop applications in a controlled environment.

8. FAQ & Troubles

While using Docker, you may encounter various issues. This section provides solutions to common problems and frequently asked questions.

Difference Between Docker and Virtual Machines

  • Docker: Shares the host OS kernel, making it lightweight and enabling fast container startup.
  • Virtual Machines (VMs): Each VM has its own OS, consuming more resources and taking longer to start.

Docker is more efficient in resource utilization, making it ideal for development environments and automated deployments.

Persisting Data in an Ubuntu Container

To retain data even after a container is stopped, use volume mounting.

docker run -v my_data:/data ubuntu

The my_data volume stores data persistently, allowing it to be accessed even after the container is removed.

Common Errors and Solutions

1. permission denied Error

If you see a permission denied error when running Docker commands, your user might not be in the docker group.

Add your user to the docker group with the following command:

sudo usermod -aG docker $USER

After running this command, log out and log back in to apply the changes.

2. image not found Error

If an image has been removed from Docker Hub, specify a different tag to pull a valid version.

docker pull ubuntu:22.04

By specifying a version, you can ensure that you download a working image.

侍エンジニア塾