0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows上のWSL2でCentOSのDockerコンテナを動かす

Posted at

SurfaceGO2上でCentOSを動かすようにしたのでメモ。
入れる前に2021年11月時点の最新にWindowsUpdateしておいた。

WSL2

とりあえずWSL2が動作するようにする。
昔と違って色々やらななくても
wsl --install
で普通にWSL2とUbuntuが入った。
念のためwsl --set-default-version 2はしておいた。

CentOSを動かす方法としては大きく次の形がありそう。

  • 仮想環境を構築して、CentOSを入れる
  • WSL2で直接CentOSを適用する
  • WSL2で入れたUbuntuに対して、DockerでCentOSを入れる
  • Docker for Windowe(WSL2)でCentOSを動かす

最初はWSL2で直接入れようと思っていたが、Dockerパターンの方がよい気がしたので、Ubuntu+Dockerにする。

Docker

このあたりが参考

apt-getする。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER

ここまででDocker本体のインストールが完了。
docker -v
で確認可能。

CentOSのイメージを取得
docker pull centos:centos7
確認は
docker images
でCentOSのイメージがあればOK

Dockerサービスを起動する。
sudo service docker start

実際にイメージを開始する。
docker run -it -d --name centos7 centos:centos7
が、後で80番ポートとかでアクセスする場合は-pオプションでポート開けておく。
docker run -it -d -p 80:80 --name centos7 centos:centos7のような感じ。(1敗)
一応あとからiptablesとかで解放できないこともないらしい。

あとは普通にdockdr psで確認して、
docker exec -it centos7 bash
で中に入ってコマンド実行が可能。

使い終わったら
docker stop centos7
docker rm centos7
で削除したら綺麗になる。

何かをインストールして継続して使いたいのではなく、
一時的に立ち上げてテストしたい、といった用途ならこれがよさそう。
(インストールする場合はDockerイメージ作ればいける)

centOS

先ほどのdocker execで中に入った後にサーバを構築する場合、
CentOSなので
yum install nginx
のようにyumでインストールするのだが、リポジトリが設定されていないので
/etc/yum.repos.d/nginx.repoファイルを追加する。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

最近だと普段はVSCodeをGUI上で使うので、正直viやemacsの使い方をマスターするつもりは学生時代からない。
のでこういう時はnanoエディタを使う。最初からは入っていないので
yum install nano
でインストールしてnano /etc/yum.repos.d/nginx.repoで開いてコピペ、保存。
これでnginxのインストールができるようになった。

起動はsystemctl start nginxで行うのが一般的だと思われるが、
Dockerだとそのままでは実行できないので/usr/sbin/nginxで直接実行。
curl http://localhostでDocker内からは接続出来る事を確認。

Windowsからもlocalhostで接続出来た。
CentOS向けのソフトウェアをテストする際にはこれでいける。

必要があれば作ったコンテナからイメージに変換しておくことで、いつでも立ち上げられる。
ここにやり方。
docker commit centos7 centos7-nginx
のようにCommitする。

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?