環境準備:
Centos8 下載下傳位址:http://mirrors.aliyun.com/centos/8/isos/x86_64/
我用的版本是CentOS 8.3 ,預設repo檔案中使用了mirrorlist 取代 baseurl,能根據客戶IP從地理位置上選擇鏡像源,不用再單獨設定阿裡源。
如果要單獨設定阿裡源,要先移除repo檔案,再從阿裡下載下傳repo檔案:
mv /etc/yum.repos.d/* /tmp
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
系統安裝完畢後更新一下:
dnf update -y
關閉SeLinux:
vi /etc/sysconfig/selinux
SELINUX=disabled
設定時區:
timedatectl set-timezone Asia/Shanghai
重新開機CentOS:
reboot
檢視核心版本:
uname -r
4.18.0-240.1.1.el8_3.x86_64
dnf install podman -y
podman加速鏡像配置:
cp /etc/containers/registries.conf{,.bak}
cat > /etc/containers/registries.conf << EOF
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "uyah70su.mirror.aliyuncs.com"
[[registry.mirror]]
prefix = "docker.io"
location = "hub-mirror.c.163.com"
EOF
拉取鏡像:
podman pull wordpress
podman pull mariadb
檢視鏡像:
podman image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/wordpress latest 0d35c2300ec8 9 days ago 558 MB
docker.io/library/mariadb latest 3a348a04a815 2 weeks ago 413 MB
通過podman network inspect podman可以看到預設網段是10.88.0.0/16,在centos8.2及更高的版本中,可以增加 --ip 10.88.0.XXX 參數,為容器指定一個固定的ip了
建立資料庫相關存放目錄:
mkdir -p /opt/mysql/{data,log,conf.d}
如果重建資料庫容器,要把上面三個目錄内檔案全部删除。
啟動容器:
podman run -itd --name mysql -h mysql \
--privileged=true \
--ip 10.88.0.8 \
-p 3306:3306 \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf.d:/etc/mysql/conf.d \
-v /opt/mysql/log:/var/log/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=W0rdPress \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=Passw0rd \
-e MYSQL_ROOT_HOST=% \
mariadb
podman run -itd --name wordpress -h wordpress \
-v /etc/localtime:/etc/localtime:ro \
--privileged=true \
--ip 10.88.0.7 \
-p 80:80 -p 443:443 \
-e WORDPRESS_DB_HOST=10.88.0.8:3306 \
-e WORDPRESS_DB_USER=wordpress \
-e WORDPRESS_DB_PASSWORD=Passw0rd \
wordpress
防火牆開放http和https端口:
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
systemctl restart firewalld
這時可以通過浏覽器通路 “http://容器主控端IP” 來通路wordpress了,親測通過。
如果有問題,用podman logs <容器ID>來檢視日志。
設定開機啟動
vi /etc/systemd/system/mysql.service
[Unit]
Description=mysql
After=network.target network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/podman start -a mysql
ExecStop=/usr/bin/podman stop -t 10 mysql
Restart=on-failure
[Install]
WantedBy=multi-user.target
vi /etc/systemd/system/wordpress.service
[Unit]
Description=WordPress
Wants=network.target network-online.target
After=network.target network-online.target mysql.service
[Service]
Type=simple
ExecStart=/usr/bin/podman start -a wordpress
ExecStop=/usr/bin/podman stop -t 10 wordpress
Restart=on-failure
[Install]
WantedBy=multi-user.target
podman stop wordpress
podman stop mysql
systemctl enable mysql
systemctl enable wordpress
systemctl start mysql
systemctl start wordpress
systemctl status mysql
systemctl status wordpress
務必要用status檢查服務是否Active。我初次就沒有Active,删除容器重新建立後正常了。
重新開機主機測試
reboot