Docker 操作記錄


Docker 容器信息

docker info 查看信息

docker 更改鏡像目錄 方式:
1、配置文件修改

# cat /etc/sysconfig/docker |grep -v ^# |grep -v ^$
other_args="--graph=/data/docker"
DOCKER_CERT_PATH=/etc/docker
DOCKER_NOWARN_KERNEL_VERSION=1

建立 lvm 邏輯分區 便於擴展

# lvcreate -L 2T lv_docker vg_home
# mkfs.ext4 /dev/vg_home/lv__docker
# mkdir /mnt/docker
# mount /dev/vg_home/lv_docker /mnt/docker/
# service docker stop 
# cp -r /var/lib/docker/* /mtn/docker
# mount /dev/vg_home/lv_docker /var/lib/docker 
# cat /etc/fstab
--- 
/dev/vg_home/lv_docker /var/lib/docker ext4 defaults 0 0

Docker 啟動:

# /etc/init.d/docker start

Docker 鏡像

# docker images 
# docker ps -a  執行記錄 所有容器狀態

docker ps -a 查看所有容器 的狀態;
查看終止 的容器 ID 信息。
docker ps -a -q

 刪除 鏡像 容器

刪除鏡像 IMAGE ID
docker rmi 787a2e217a1e
rm 刪除容器 rmi 刪除鏡像

軟鏈接 可能會影響性能

# cp -rf docker docker.bak
# cp -rf docker /<my_new_location>/
# ln -s /<my_new_location>/docker docker

2、啟動指定路徑 

service docker start
docker images 查看鏡像列表;
docker ps 狀態
docker run - 運行一個容器
-t - 分配一個(偽)tty (link is external)
-i - 交互模式 (so we can interact with it)
ubuntu:14.04 - 使用 ubuntu 基礎鏡像 14.04
/bin/bash - 運行命令 bash shell

docker ps :列出當前所有正在運行的container
docker ps -l :列出最近一次啟動的container
docker ps -a :列出所有的container(包含歷史,即運行過的container)
docker ps -q :列出最近一次運行的container ID

Docker 端口映射:

# docker run -d P sevrer
# docker run -d p port:port server

-d 后台運行;
-P -p 標識來指定容器端口綁定到主機端口。 兩種方式的區別是:
-P : 是容器內部端口隨機映射到主機的高端口。 -p : 是容器內部端口綁定到指定的主機端口。

默認都是綁定 tcp 端口,如果要綁定 UDP 端口,可以在端口后面加上 /udp

端口綁定檢查: [ name ]
docker port website

容器兩種方式進行啟動

一種是基於創建一個容器並啟動
docker create 
docker start 
另外一種是狀態下的啟動
docker start

啟動 容器報錯問題;結束容器進程,清除網絡映射。重啟網卡 再起docker 啟容器。

pkill docker
# 關閉進程 iptables
-t nat -F
# 清除 nat 規則 ifconfig docker0 down
# 關閉網卡 brctl delbr docker0
# 刪除 虛擬網橋
# 最后重啟docker后解決

查看WEB 應用程序日志

docker logs [ID或者name] 可以查看容器內部的標准輸出。
docker logs name

查看容器進程:

docker top webstie

docker inspect 查看Docker 的底層信息;

docker inspect website 

使用 docker inspect 來查看Docker的底層信息。它會返回一個 JSON 文件記錄着 Docker 容器的配置和狀態信息。

Docker 批量操作

docker中 啟動所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

docker中 關閉所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

docker中 刪除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

docker中 刪除所有的鏡像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)

獲取新鏡像 pull

docker pull ubuntu:14.04

使用centos鏡像進入一個容器
# docker run -t -i centos
// 但是多個窗口的時候會顯示同步,

進入容器有多種方式:

docker attach Docker 自帶命令;

docker attack "docker_name" exec 命令 ID 或者 name 
docker exec -ti 2a11727d5c2d /bin/bash

nsenter 工具

安裝報錯 ;

docker安裝提示需要升級 selinux-policy 等安裝包?
centos 7 更換源;
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

目錄掛載:

Docker 的 bug 
解決方式是先找出沒有 umount 的路徑
cat /proc/mounts | grep "mapper/docker" | awk '{print $2}'

更改運行容器的名稱;

docker ps 查看運行的容器;
docker rename pensive_feynman web_tes

docker rm 可以刪除容器 ;但是刪除之前必須是 stop 狀態;

docker rm ubuntu:14.04
docker rm centos:6.7

啟動運行 nginx 容器示例:

docker run -d nginx 后台運行 ;

docker exec :在運行的容器中執行命令
-d :分離模式: 在后台運行 -i :即使沒有附加也保持STDIN 打開 -t :分配一個偽終端
docker exec
-it mynginx /bin/sh

docker commit 編輯鏡像

從容器創建一個新的鏡像;
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

docker commit -a "name" -m "my-tomcat" website my-tomcat:v2

-a :提交的鏡像作者;
-c :使用Dockerfile指令來創建鏡像;
-m :提交時的說明文字;
-p :在commit時,將容器暫停;

容器上傳下載 拷貝文件 [ cp ]

上傳測試文件:
docker cp start-kube.sh website:/root/

下載文件 docker cp
docker cp website:/test.html /root/

進入容器:
docker exec -it website /bin/bash

查看文件:

diff 查看容器的目錄結構;

docker diff ID/NAME

# docker diff webstie

docker 操作記錄:

下載一個 鏡像
docker pull images

運行一個容器
docker run -d -p 0.0.0.0:18080:8080 images
-d:讓容器在后台運行。
-P:將容器內部使用的網絡端口映射到我們使用的主機上
-p:指定端口
--name name12
docker run -d -p 0.0.0.0:18080:8080 --name rancher12 rancher/server

docker Port ID 查看端口;
docker logs -f ID 查看運行日志;
檢查WEB應用程序
docker inspect 來查看Docker的底層信息。它會返回一個 JSON 文件記錄着 Docker 容器的配置和狀態信息
docker rm 命令來刪除不需要的容器

 


免責聲明!

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



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