Linux 安裝和配置Docker


查看系統是否已安裝docker

rpm -qa|grep docker

安裝yum-utils

yum install yum-utils

設置阿里雲倉庫,速度快點

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum軟件包索引

yum makecache fast

安裝最新版本的 Docker Engine-Community 和 containerd

yum install docker-ce docker-ce-cli containerd.io

如果安裝指定版本,可以先列出並排序您存儲庫中可用的版本

yum list docker-ce --showduplicates | sort -r

安裝指定版本,例如

yum install docker-ce-19.03.12 docker-ce-cli-19.03.12 containerd.io

修改docker配置文件

mkdir /etc/docker
vim /etc/docker/daemon.json

添加如下內容

{
 "insecure-registries": ["registry.cn-shenzhen.aliyuncs.com" ],
 "registry-mirrors": ["http://hub-mirror.c.163.com"],
 "storage-driver": "overlay2",
 "storage-opts": ["overlay2.override_kernel_check=true"],
 "graph": "/var/lib/docker",
 "hosts": [
    "tcp://0.0.0.0:2375",
    "unix:///var/run/docker.sock"
  ],"log-driver": "json-file",
    "log-opts": {
        "labels": "production_status,geo",
        "env": "os,customer",
           "max-size": "10m",
        "max-file": "10"
    }
}

防火牆開啟端口2375

firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload

重新加載

systemctl daemon-reload

設置開機自啟

sed -i 's/ExecStart=\/usr\/bin\/dockerd -H fd:\/\/ --containerd=\/run\/containerd\/containerd.sock/ExecStart=\/usr\/bin\/dockerd/g' /usr/lib/systemd/system/docker.service
systemctl enable docker

啟動docker服務

systemctl start docker

關閉docker服務

systemctl stop docker

查看啟動狀態

systemctl status docker

Docker 一些命令

列出容器

docker ps

列出名稱前面是eureka的容器

docker ps --filter "name=eureka*"

獲取容器的日志

查看指定時間后的日志,只顯示最后100行:

docker logs -f -t --since="2022-02-01" --tail=100 CONTAINER_ID

查看最近30分鍾的日志:

docker logs --since 30m CONTAINER_ID

查看某時間段日志:

docker logs -t --since="2022-02-01T14:00:00" --until "2022-02-01T18:00:00" CONTAINER_ID

參數說明:
-f, --follow 跟蹤實時日志
--since string 顯示自某個timestamp之后的日志,或相對時間,如42m(即42分鍾)
--tail string 從日志末尾顯示多少行日志, 默認是all
-t, --timestamps 顯示時間戳
--until string 顯示自某個timestamp之前的日志,或相對時間,如42m(即42分鍾)

獲取容器的日志並形成文件

docker logs CONTAINER_ID | cat $1 > /opt/1.log

列出本地鏡像

docker images

 

Docker Swarm集群配置

Docker Swarm 是 Docker 的集群管理工具。
Swarm將不同的docker容器集成為管理節點-工作節點的集群模式,建立聯系的同時也可以分配計算資源,實現以docker容器為單元的並行任務。

初始化主節點IP,下面IP根據實際填寫

docker swarm init --advertise-addr 172.16.21.2

提示如下:
Swarm initialized: current node (8azm131yfktebn614qz52pog0) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-clddfohcl2iz236biiyiu6pufe6xmuzt3qfun1vdw1zweme120-lin75iwfgwar73hhfifsirnpc 172.16.21.2:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
備注:如果要加入集群,可按上面命令docker swarm join……執行

運行下面命令,如果看到結果有一行swarm:active,說明swarm已被激活 

docker info

查詢節點情況,第一列的ID值會為上面的 8azm131yfktebn614qz52pog0

docker node ls

docker 提供多種網絡模式,可以根據需求來使用。
例如在一台主機(host)或者同一個docker engine上面運行continer,就可以選擇bridge網絡模式;
在多台host上來運行多個container來協同工作,overlay模式就是我們的首選。

docker network create --driver overlay app_net

節點打標簽,最后的值對應上面的節點ID值

docker node update --label-add role=gateway 8azm131yfktebn614qz52pog0

 

Docker Stack

基於Docker Swarm,在Compose(.yml)聲明文件中定義應用,然后通過docker stack deploy命令完成部署和管理。

列出服務

docker service ls

列出現有堆棧

docker stack ls

刪除堆棧

docker stack rm

部署新的堆棧或更新現有堆棧

docker stack deploy [OPTIONS] STACK

參數說明:

--bundle-file 分布式應用程序包文件的路徑
--compose-file, -c Compose文件的路徑
--with-registry-auth 不加則默認false,將注冊表身份驗證詳細信息發送給Swarm代理


免責聲明!

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



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