Linux下離線安裝docker與fastDFS


一、Linux下離線安裝Docker

基礎環境

1、操作系統:CentOS 7

2Docker版本:docker-19.03.9.tgz 官方下載地址(打不開可能需要科學-上網)

3、官方參考文檔:https://docs.docker.com/install/linux/docker-ce/binaries/#install-static-binaries

二、Docker安裝

1、解壓

  tar -zxvf docker-19.03.9.tgz

2、將解壓出來的docker文件內容移動到 /usr/bin/ 目錄下

  cp docker/* /usr/bin/

3、將docker注冊為service

  vim /etc/systemd/system/docker.service

將下列配置加到docker.service中並保存(如果沒有該文件會自動創建,編輯ok保存就好)

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

[Service]

Type=notify

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.

# Only systemd 226 and above support this version.

#TasksMax=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

# restart the docker process if it exits prematurely

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

 

[Install]

WantedBy=multi-user.target

4、啟動

  chmod +x /etc/systemd/system/docker.service             #添加文件權限並啟動docker

  systemctl daemon-reload                                                       #重載unit配置文件

  systemctl start docker                                                             #啟動Docker

  systemctl enable docker.service                                           #設置開機自啟

5、驗證

  systemctl status docker                                                         #查看Docker狀態

  docker -v                                                                                     #查看Docker版本

以上請參考:https://www.cnblogs.com/luoSteel/p/10038954.html

三、fastDFS文件服務器安裝

1、(有網機器)從有鏡像的機器上獲取鏡像文件(及找一台聯網的linux機器)

  在有網的linux上執行(執行前確認docker是否安裝)拉取鏡像: docker pull morunchang/fastdfs

2、(有網機器)鏡像轉文件的命令是: docker save morunchang/fastdfs  > /root/fastdfs.tar 

3、(離線機器)復制文件到離線機器 然后導入:docker load < /root/fastdfs.tar 

4、啟動tracker: docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh

注意:可能會報錯

原因:

“write /proc/self/attr/keycreate: permission denied” 表示文件沒有寫入權限,被拒絕訪問了

selinux是linux為了系統安全性做的控制,會控制用戶可以訪問、讀取、修改哪些文件,比如,前面的write /proc/self/attr/keycreate文件沒有權限,就是被selinux控制了。
selinux有三種模式:enforcing 強制 permissive 寬容的 diabled 禁止的,顧名思義,權限限制,從高到低。

解決方法:

/etc/selinux下的config文件中的SELINUX屬性改為disabled
步驟:

vi /etc/selinux/config

 按I鍵進入編輯模式,將SELINUX屬性改為disabled,保存退出:wq,重啟liunx系統即可

錯誤解決辦法參考:https://www.cnblogs.com/liaoyanglong/p/13826869.html

5、啟動tracker: docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh

  這時候可能還會報錯,提示你已經啟動過該容器了,你可以:

  docker rm 你的id,然后再次執行上述命令

6、啟動storage (172.21.91.218 ip 自行替換為docker 所在服務器的ip )( 此鏡像不支持-p 參數)

  docker run -d --name storage --net=host -e TRACKER_IP=172.21.91.218:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh

 

可選配置

storage 內部nginx 端口修改 以22999為例

1.進入容器內部: docker exec -it storage /bin/bash

2.修改nginx配置文件: vim /etc/nginx/conf/nginx.conf

修改 http.server.listen 8080 為 22999

sed -i 's/8080/22999/g' /etc/nginx/conf/nginx.conf

3.退出容器

exit

4.重啟storage

docker restart storage

 

//瀏覽器訪問路徑 http://172.21.91.218:22999/group1/M00/00/00/rBVb2lwPNYeAZtTLAAAXxD4H4Z8674.txt

相關端口開放
firewall-cmd --zone=public --add-port=22122/tcp --permanent
firewall-cmd --zone=public --add-port=23000/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM