#docker常用命令 更多操作 docker --help / docker run --help檢視
#安裝docker
yum install docker-io
#啟動docker
/etc/init.d/docker start 或者service docker start
#檢視docker狀態
service docker status
#查詢centos映象
docker search centos
#獲取centos映象
docker pull centos
#檢視映象
docker images
#檢視docker程序
docker ps -a
#映象操作
#安裝nginx映象, --name名稱為tomnginx, -d後台執行 -p設定docker埠對映到系統埠,
#格式為 系統埠:docker埠, 啟動nginx映象
docker run -d -p 1234:80 --name tomnginx nginx
#進入某個程序
docker attach contain_id或者容器名稱
如果無法進入還可以通過下面的指令碼
#!/bin/bash
# 如果無法通過docker attach containid進入執行中的容器可以通過下面方式
# 查詢程序pid
# 傳入引數
cname=$1
cpid=$(docker inspect -f "}" "$cname")
# 進入容器
nsenter --target "$cpid" --mount --uts --ipc --net --pid
#檢視ip位址, 系統命令 ifconfig也可以
ip ad li
#刪除映象
docker rm contain_id
#將docker資料夾對映到系統, -i互動式, -t字元終端, 容器名稱volumetest
#-h 自定義主機名, -v docker容器內目錄, centos為映象名稱
docker run -it --name testvolume1 -h hostvolume -v /data centos
#檢視testvolume1容器的卷對映到系統的位置,
#-f 格式化format匹配.volumes資訊, testvolume1為容器名稱
docker inspect -f } testvolume1
#docker inspect 映象名稱 //檢視某個映象的配置資訊
#docker的磁碟檔案卷
#自定義docker對映到系統檔案的路徑, -v 系統路徑:docker路徑,
#如果對映的目錄唯讀, 則 -v 系統路徑:docker路徑:ro
docker run -it --name testvolume2 -h hostvolume -v /usr/local/tom:/tom centos
#從已有的映象容器中掛在檔案卷
docker run -it --name testvolume3 --volumes-from testvolume1
#建立自己的映象, -m資訊, 生成自己的映象, 名稱為tom/nginx, tag為v1
#通過docker images檢視自己生成的映象
docker commit -m "this is message" contain_id tom/nginx:v1
#執行自己的映象, 並對映80埠
docker run -d -p 2345:80 --name my-nginx-mirror tom/nginx:v1
#docker的資源隔離
#docker 執行容器測試 --rm 執行完畢刪除,
#stress是乙個壓力測試軟體, 需要安裝, 可以編寫dockerfile安裝, -cpu是stress的引數
docker run -it --rm stress -cpu 1
# -c 是該容器可用cpu的佔比和nginx的weight類似,
# 還可以設定-cpuset-cpus設定可用哪幾個cpu, juti kan help
docker run -it -c 30 --rm stress -cpu 1
#-m 記憶體使用限制, 限制可用128m, 壓力測試是測試200m,
#最多能用128m, 能超過一點如130,多了就無法執行
docker run -it -rm -m 128m stress --vm 1 --vm-bytes 200m --vm-h
# docker 的網路模式, 預設採用橋接 bridge
#檢視docker網橋, 每啟動乙個容器就會建立乙個網路介面inte***ce
brctl show
docker pull registry
#啟動registry倉庫, 對映 系統埠:docker容器埠 , 注意這個registry的容器埠是固定5000的
docker run -d -p 5001:5000 registry
#打包乙個映象用於push到私有倉庫供其他伺服器使用,
#注意 tag後面跟的是映象image, 不是容器名也不是容器id
#可以通過docker ps -a 檢視image列對應的名稱
#打包完畢檢視 docker images
docker tag tom/nginx:v1 192.168.42.1:5001/docker/nginx:v1
# push到私有倉庫, 此時會報錯, 需啟用https或者修改配置
#/etc/sysconfig/docker裡other_args加入--insecure-registry 192.168.42.1:5001
#other_args="--insecure-registry 192.168.42.1:5001" 之後重啟docker
#之前啟動的registry容器要刪掉重新run一次才可以,
#需要pull也要配置other_args加入--insecure-registry 192.168.42.1:5001
docker push 192.168.42.1:5001/docker/nginx:v1
docker pull 192.168.42.1:5001/docker/nginx:v1
#docker自動構建指令碼dockerfile
#docker自動構建指令碼dockerfile, 可以採用原始的手動構建
#docker-compose 是乙個同時可以構建多容器的工具,帶學習
#例:nginx自動化構建指令碼
# this is my first dockerfile
# author tom
# version 1.0
#docker容器內手動安裝構建相關軟體,需要自己安裝, 安裝命令和linux中安裝相同, 通過dockfile可以自動化構建安裝,
#下面這就是乙個dockfile自動化構建安裝nginx的指令碼, 檔名稱是dockerfile, d大寫
#下面大寫部分是關鍵字
#base images 基礎映象來自於
from centos
#維護人
maintainer tomz
add pcre-8.3.7.tar.gz /usr/local/src
add nginx-1.10.0.tar.gz /usr/local/src
#run 執行命令, 安裝相關依賴
run yum install -y wget gcc gcc-c++ make openssl-devel
#新增乙個www使用者不登陸,-m不生成使用者資料夾
run useradd -s sbin/nologin -m www
#工作目錄
workdir /usr/local/src/nginx-1.10.0
#執行安裝nginx
#將daemon off;寫入nginx.conf, 讓nginx在前台執行
run echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
#把nginx加入到環境變數
env path /usr/local/nginx/sbin:$path
#暴露80埠
expose 80
#執行nginx
cmd ["nginx"]
#執行構建, 在該檔案目錄執行 docker build -t tom/nginx:v2 .
#如果dockfile檔案不在當前目錄那麼要寫全路徑 docker build -t tom/nginx:v2 /usr/local/tom/nginx/dockfile
# -t 是自定義的映象倉庫名稱, 執行完畢構建以後, 執行docker images 檢視即可
# 執行docker run -d -p 3456:80 --name dockfilebuildnginx tom/nginx:v2
#docker web管理介面
docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
docker學習筆記
1 docker依賴於linux核心,無法直接安裝在windows環境中,否則需要安裝docker toolbox 2 相關操作 docker create 建立乙個容器但是不啟動它 docker run 建立並啟動乙個容器 docker stop id 停止容器執行,傳送訊號sigterm doc...
Docker學習筆記
一 docker是什麼 docker是乙個開源的引擎,可以輕鬆的為任何應用建立乙個輕量級的 可移植的 自給自足的容器。就相當於書包可以裝書,水杯可以盛水。二 docker解決了什麼問題 我本地沒有問題啊 本地和線上的環境不一致問題,哪個哥們又寫死迴圈了 其他專案的出錯不影響你本身的專案 雙十一伺服器...
docker學習筆記
1.怎麼給執行中的docker容器新增新的埠 解決 1 獲得容器ip docker inspect container name grep ipaddress 2 iptable埠 將容器的8000埠對映到主機的8001埠 iptables tnat adocker ptcp dport 8001 ...