Docker

AlmaLinuxをDocker環境へ構築

docker run -itd --privileged -p 2222:22 --name almalinux --hostname almalinux  almalinux:latest /sbin/init
docker >> docker run -itd --privileged -p 2222:22 --name almalinux --hostname almalinux  almalinux:latest /sbin/init
Unable to find image 'almalinux:latest' locally
latest: Pulling from library/almalinux
28130cb29ede: Pull complete
Digest: sha256:d7f8aa1c5ff918565fa1114d16e27b03fe10944a422e2943a66f6f4a275fa22c
Status: Downloaded newer image for almalinux:latest
6222c9fdd54bd7ead2d17d17a3c30eb5a8a0234772959cdea028cccc09884b44
docker >> docker ps
CONTAINER ID   IMAGE              COMMAND        CREATED         STATUS         PORTS                  NAMES
6222c9fdd54b   almalinux:latest   "/sbin/init"   5 seconds ago   Up 4 seconds   0.0.0.0:2222->22/tcp   almalinux
docker >>
コンテナ内のシェルを動作させる

-itオプションをつける事で対話モードとなります。

docker exec -it almalinux /bin/bash
docker >> docker exec -it almalinux /bin/bash
[root@almalinux /]#
[root@almalinux /]# cat /etc/redhat-release
AlmaLinux release 9.3 (Shamrock Pampas Cat)
[root@almalinux /]# passwd root
bash: passwd: command not found
[root@almalinux /]# which passwd
bash: which: command not found
[root@almalinux /]# dnf install -y passwd
:
Installed:
  libuser-0.63-13.el9.x86_64                                                     passwd-0.80-12.el9.x86_64

Complete!
[root@almalinux /]# dnf install -y which
:
Installed:
  which-2.21-29.el9.x86_64

Complete!
[root@almalinux /]#
[root@almalinux /]# which passwd
/usr/bin/passwd
[root@almalinux /]# passwd root
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@almalinux /]#
opensshサーバをインストール
dnf install -y openssh-server
[root@almalinux /]# dnf install -y openssh-server
:
Installed:
  openssh-8.7p1-34.el9.x86_64                                                openssh-server-8.7p1-34.el9.x86_64

Complete!
[root@almalinux /]#
--
-- sshの起動
--
[root@almalinux /]# systemctl start sshd
--
-- sshデーモンの自動起動を設定
--
[root@almalinux /]# systemctl enable sshd
--
-- 状態確認
--
[root@almalinux /]# systemctl status sshd
● sshd.service - OpenSSH server daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-03-03 01:49:25 UTC; 14s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 154 (sshd)
     CGroup: /docker/28425398b03d6cdb99468bbb1102e90849bf5c74a2d9dc314b9a471e394cba60/system.slice/sshd.service
             └─154 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Mar 03 01:49:25 almalinux systemd[1]: Starting OpenSSH server daemon...
Mar 03 01:49:25 almalinux sshd[154]: Server listening on 0.0.0.0 port 22.
Mar 03 01:49:25 almalinux sshd[154]: Server listening on :: port 22.
Mar 03 01:49:25 almalinux systemd[1]: Started OpenSSH server daemon.
[root@almalinux /]#

これでホストマシン(私はWindows)からteratarmを使って接続する事が可能になります。ホスト名はlocalhost、接続ポートは上記指定した2222を使います。

おまけ
--  他にも以下のパッケージを入れました。
-- (sshデーモンを上げるだけなら不要ですがあると何かと便利なものです)

--  epel-release :Extra Packages for Enterprise Linux (EPEL) リポジトリのリポジトリファイルをインストール 
-- これでpython3もインストールされます。
dnf install -y epel-release

[root@almalinux /]# which python3
/usr/bin/python3
[root@almalinux /]# which python
which: no python in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
[root@almalinux /]# ln -sf /usr/bin/python3 /usr/bin/python
[root@almalinux /]# python -V
Python 3.9.18

--  procps-ng : ps やtopコマンドなとシステムユーティリティが含まれています。
dnf install -y procps-ng

--  diffコマンドも入っていなかったのでこちらも入れました
--
dnf install -y diffutils

この状態でdocker commit

ここまでの設定をDockerイメージとして保存する。次回からは今回保存したイメージからコンテナを上げる事でsshデーモンが立ち上がった状態となります。以下はコンテナ名「almalinux」で動作しているコンテナをリポジトリ名(almalinux):タグ名(9.3)のイメージを作成しています。

docker commit almalinux almalinux:9.3
docker >> docker ps
CONTAINER ID   IMAGE              COMMAND        CREATED          STATUS          PORTS                  NAMES
6222c9fdd54b   almalinux:latest   "/sbin/init"   11 minutes ago   Up 11 minutes   0.0.0.0:2222->22/tcp   almalinux
docker >> docker images
REPOSITORY                     TAG                 IMAGE ID       CREATED        SIZE
almalinux                      latest              7407e03f7ffc   3 months ago   184MB
public.ecr.aws/lambda/python   3.11-rapid-x86_64   84df53513e60   4 months ago   765MB
public.ecr.aws/lambda/python   3.11-x86_64         e34e3e59cb88   4 months ago   749MB
postgres                       15.3                f0ff6ef79497   8 months ago   412MB
docker >> docker commit almalinux almalinux:9.3
sha256:a361adcb857848bf073255155beb4940d0f0c5cdbb98fadaa93454cd77bed109
docker >> docker images
REPOSITORY                     TAG                 IMAGE ID       CREATED         SIZE
almalinux                      9.3                 a361adcb8578   3 seconds ago   228MB
almalinux                      latest              7407e03f7ffc   3 months ago    184MB
public.ecr.aws/lambda/python   3.11-rapid-x86_64   84df53513e60   4 months ago    765MB
public.ecr.aws/lambda/python   3.11-x86_64         e34e3e59cb88   4 months ago    749MB
postgres                       15.3                f0ff6ef79497   8 months ago    412MB
docker >>

コンテナ停止

以下はコンテナ名で指定していますがコンテナIDで指定する事も可能です。

docker container stop almalinux
docker >> docker ps
CONTAINER ID   IMAGE              COMMAND        CREATED          STATUS          PORTS                  NAMES
ecff08544961   almalinux:latest   "/sbin/init"   17 minutes ago   Up 17 minutes   0.0.0.0:2222->22/tcp   almalinux
docker >> docker container stop almalinux
almalinux
docker >> docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
docker >>

コンテナ起動

docker run -itd --privileged -p 2222:22 --name almalinux9.3 --hostname almalinux  almalinux:9.3 /sbin/init
-- 
--  -itd インタラクティブな実行モード(-it)と、デタッチド(バックグランド)モード(-d)
-- ちなみに -は単一文字のオプションの組み合わせ(今回はi,t,d)という意味があります。
--  --privileged コンテナーに特権モードを与えます。
--               特権モードでは、ホストシステムの機能に制限なくアクセスできます。
-- -p 2222:22: ホストのポート2222をコンテナーのポート22にマッピングします。
-- --name almalinux9.3   コンテナー名を almalinux9.3 とする
-- --hostname almalinux  コンテナー内のホスト名を almalinuxとする
-- almalinux:latest  起動するイメージを指定
--
docker >> docker run -itd --privileged -p 2222:22 --name almalinux9.3 --hostname almalinux  almalinux:latest /sbin/init
0de3bb82095859c53c5ec90f6f4ec53ee8d1bf589aa061110ffe4fe9efa66e5e
docker >>
docker >> docker ps
CONTAINER ID   IMAGE              COMMAND        CREATED          STATUS          PORTS                  NAMES
0de3bb820958   almalinux:latest   "/sbin/init"   50 seconds ago   Up 49 seconds   0.0.0.0:2222->22/tcp   almalinux9.3
docker >> docker exec -it almalinux9.3 /bin/bash
[root@almalinux /]# ps -ef | grep ssh
root          24       1  0 05:19 ?        00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root          49      27  0 05:19 pts/1    00:00:00 grep --color=auto ssh
[root@almalinux /]#
スポンサーリンク
タイトルとURLをコピーしました