目錄
- Docker 創建centos容器集群并實現遠程登錄
- 0.拉取Docker鏡像(Centos7官方版)
- 1.搭建網橋加入網絡
- 2.配置機器網絡環境并加入ssh
- 3. 查看容器中自啟項內容
- 4. 參考文章:
Docker 創建centos容器集群并實現遠程登錄
0.拉取Docker鏡像(Centos7官方版)
拉取官方鏡像(這個鏡像里面幾乎什么都沒有,很多依賴庫需要自己配置,實實在在的“純凈版”。關注我,下期教你用ISO鏡像文件使用dockerfile制作究極完整版docker鏡像)
docker pull centos:centos7
1.搭建網橋加入網絡
創建docker bridge網橋
搭建網橋可以方便管理結點,并且讓結點同時位于同一個網段下
sudo docker network create NodeNetWork
創建三個不同端口的結點容器
zwb@test-algo:~$ sudo docker run -itd --restart=always --hostname node01 --name Node01 -p 50001:22 -v /data/sda/sharedata:/share --network NodeNetWork --privileged=true centos:centos7 /sbin/init zwb@test-algo:~$ sudo docker run -itd --restart=always --hostname node02 --name Node02 -p 50002:22 -v /data/sda/sharedata:/share --network NodeNetWork --privileged=true centos:centos7 /sbin/init zwb@test-algo:~$ sudo docker run -itd --restart=always --hostname node03 --name Node03 -p 50003:22 -v /data/sda/sharedata:/share --network NodeNetWork --privileged=true centos:centos7 /sbin/init # 參數解釋: # -itd # 選項 選項簡寫 說明 # –detach -d 在后臺運行容器,并且打印容器id。 # –interactive -i 即使沒有連接,也要保持標準輸入保持打開狀態,一般與 -t 連用。 # –tty -t 分配一個偽tty,一般與 -i 連用。 # --restart=always 機器啟動時自啟動 # --hostname 初始化的hostname # -p 50001:22 端口映射 宿主機端口:容器端口這里為22表示容器內ssh端口 # --privileged=true 通過特權模式進入docker,不僅可以使用systemctl命令(centos 7系統),還可以開啟ssh服務 # --network NodeNetWork 將容器結點加入網橋中 # 注意:在 Linux Docker中無法使用 systemd(systemctl) 相關命令的原因是 1號進程不是 init ,而是其他例如 /bin/bash ,所以導致缺少相關文件無法運行。(System has not been booted with systemd as init system (PID 1). Can't operat #解決方案:/sbin/init并且--privilaged=true一定要加上
2.配置機器網絡環境并加入ssh
以Node01為例子,進入結點容器并配置網絡環境并加入ssh
(base) zwb@test-algo:~$ sudo docker exec -it Node01 /bin/bash [root@aa92cb71e3ab /]# yum -y install net-tools.x86_64 Failed to set locale, defaulting to C.UTF-8 CentOS Linux 8 - AppStream 26 B/s | 38 B 00:01 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
可以看到我們在安裝網絡工具包的時候出錯了,上面的報錯信息意思是,從倉庫 ‘appstream’ 下載元數據失敗:由于鏡像列表中沒有 URL,不能準備內部鏡像列表。