Showing posts with label Docker. Show all posts
Showing posts with label Docker. Show all posts

2021-12-26

Hashicorp Nomad 設定 docker shm_size

由於組織內部之前使用Hashicorp Nomad來作為workload orchestrator, 管理docker,
在job file裡並未設定shared memory size導致docker dufault 192MB不敷使用出現:
ERROR: could not resize shared memory segment
PostgreSQL: xxx to 196864 bytes: No space left on device

在Nomad job file 設定如下:
task 設定檔下: 單位是byte, 所以1GB 要寫成 1*1024*1024*1024 = 1073741824

config {
   shm_size = 1073741824
}

docker driver 文件: https://www.nomadproject.io/docs/drivers/docker
但實在是不友善,所以有人提交需求改為 human friendly
https://github.com/hashicorp/nomad/issues/10879

2021-01-12

Docker data path

問題: Docker預設的data path在/vat/lib/docker, 這會隨著container越來越多而佔去許多容量,所以修改路徑。

解決方法: 在/etc/docker底下新增檔案daemon.json寫入

{
  "live-restore": true, #可以stop docker daemon不影響container
  "data-root": "/project/docker",
  "debug": true, #debug log
  "insecure-registries": [],#配置docker的私庫地址
  "registry-mirrors": [
       "https://d8b3zdiw.mirror.aliyuncs.com"
    ],
  "insecure-registries": [
       "https://ower.site.com"
    ],
}

重啟後生效:
systemctl daemon-reload
systemctl restart docker.service

參考文件: https://docs.docker.com/engine/reference/commandline/dockerd

2019-09-30

CentOS 7 Docker 無法連線 Docker daemon?


訊息內容:
[root@localhost ~]# docker search mysql
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解決方式:
重啟docker service
[root@localhost ~]# systemctl restart docker

參考資料:
https://blog.yowko.com/cannot-connect-docker-daemon/

2018-03-11

Docker 指令筆記

systemctl status/start/stop/restart  docker

指令解說明文件:
https://docs.docker.com/v17.12/edge/engine/reference/commandline/docker/#child-commands


儲存與載入印象檔
docker images
docker save -o xxx.tar repository:tag
docker load --input xxx.tar
docker load < xxx.tar

docker run -t -i  docker.io/ubuntu /bin/bash
-t: 讓Docker 分配一個虛擬終端(pseudo-tty),並綁定到容器的標準輸入上。
-i:讓容器的標準輸入保持打開
-d:背景執行
docker pa -a
docker rmi -f 79d


docker stop 79d
docker start 79d
docker restart 79d
docker inspect -f {{".Architechture"}} 79d

docker exec -it 79d517743a51 /bin/bash

匯入/匯出容器
docker export  xxx > aaa.tar 會遺失資料層的堆疊資訊
cat xxx.tar | docker import - repository


Data Volumes
docker run -d -P --name web -v /webapp repository:tag
docker run -d -P --name web -v /tmp/webapp:/opt/webapp repository:tag
docker run -d -P --name web -v/tmp/webapp:/opt/webapp:ro repository:tag
docker run -d -P --name web -v ~/.bash_history:/root/.bash_history repository:tag

Data Volumes 容器
docker run -it -v /dbdata --name dbdata ubuntu
docker run -it --vloumes-from dbdat --name db1 ubuntu
docker run -it --vloumes-from dbdat --name db2 ubuntu

Data Vloumes 容器備份
docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
恢復:
1. 先建立一個帶有資料卷的容器 dbdata2
docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
2. 再建立另一個容器,掛載 dbdata2 的容器,並使用 untar 解壓備份檔案到掛載的容器卷中
docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf
/backup/backup.tar