再談docker基本命令

子曰,溫故而知新nginx

今日,再次看書之際,又尋得docker的幾條使用命令,用小本本記下來docker

配置docker鏡像源json

當咱們在拉去一些共有鏡像時,默認,docker會向docker.io去獲取,若是在拉取的過程當中出現下載速度慢的狀況呢,其實能夠試試用一些國內的鏡像源,例如:daocloud鏡像站
官方文檔: https://www.daocloud.io/mirror
僅須要一條明明足以centos

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

當前命令適用於Ubuntu14.0四、Debian、CentOS6 、CentOS七、Fedora、Arch Linux、openSUSE Leap 42.1
執行完畢後,須要重啓一下dockerbash

# systemctl restart docker

若是在重啓的過程當中報錯:curl

Apr 20 09:02:48 localhost systemd: Starting Docker Application Container Engine... Apr 20 09:02:48 localhost dockerd-current: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '}' looking for beginning of object key string Apr 20 09:02:48 localhost systemd: docker.service: main process exited, code=exited, status=1/FAILURE

這是因爲配置json文檔的格式出錯了tcp

,則須要將/etc/docker/daemon.json文件中後面那個,號給刪掉便可,例如oop

修改前:url

{"registry-mirrors": ["http://f8214db2.m.daocloud.io"],}

修改後:spa

{"registry-mirrors": ["http://f8214db2.m.daocloud.io"]}

再次重啓docker便可

 

查看docker 最新的log
使用docker logs -ft 便可
-f: 動態輸出
-t: 增長時間戳
--tail n: 獲取最新輸出的n條
例如:

# docker logs -ft --tail 10 centos_name_1 2019-04-20T13:27:19.366905000Z 2019-04-20T13:27:19.368079000Z lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
2019-04-20T13:27:19.368478000Z inet 127.0.0.1 netmask 255.0.0.0
2019-04-20T13:27:19.368746000Z inet6 ::1 prefixlen 128 scopeid 0x10<host>
2019-04-20T13:27:19.369000000Z loop txqueuelen 1000 (Local Loopback) 2019-04-20T13:27:19.371869000Z RX packets 0 bytes 0 (0.0 B) 2019-04-20T13:27:19.374114000Z RX errors 0 dropped 0 overruns 0 frame 0
2019-04-20T13:27:19.374525000Z TX packets 0 bytes 0 (0.0 B) 2019-04-20T13:27:19.374886000Z TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2019-04-20T13:27:19.375426000Z

 

查看docker進程
使用docker top命令能夠查看docker中的進程
例如:

# docker top centos_name_1 UID PID PPID C STIME TTY TIME CMD root 4468 4452 0 09:16 pts/2 00:00:00 /bin/bash #

 

查看docker容器的負載

# docker stats centos_name_1 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS centos_name_1 0.00% 392 KiB / 991 MiB 0.04% 22 MB / 600 kB 22.8 MB / 46 MB 1

 

docker自重啓
在docker run 時,加入--restart=[always,on-failure:[number]]
--restart=always :docker 自動重啓
--restart=on-failure :docker 只有在退出碼非0的時候纔會重啓
--restart=on-failure:3 在退出碼狀態爲非0的時候,重啓,最多重啓3次

例子 --restart=always :

# docker run -d --restart=always  nginx

建立一個docker 容器,如今來刪除它

# ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'
7583 # kill -9 7583 # ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'
7842 # docker ps ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d1ed69cb3238 nginx "nginx -g 'daemon ..."   8 minutes ago       Up 47 seconds       0.0.0.0:80->80/tcp affectionate_wiles # 

咱們能夠發現,kill後進程又起來了

例子 --restart=--restart=on-failure:

# docker run -d --restart=on-failure:2 nginx 6fabc743a488a857909ac4f1472a7f1012e2224e300da70aa15c1cb8f5db0767 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6fabc743a488 nginx "nginx -g 'daemon ..."   2 seconds ago       Up 2 seconds        80/tcp cocky_heisenberg # 
#  ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'
8030 # kill -9 8030 # ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'
8145 # kill -9 8145 # ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}'
8242 # kill -9 8242 # ps aux | grep `docker ps | grep nginx | awk '{print $1}'` | grep -v grep | awk '{print $2}' Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. # 

發現,在重啓兩次後,該容器不重啓了。

 

其實基礎真的很重要~~~

相關文章
相關標籤/搜索