docker 命令

docker分爲docker-ce和docker-ee,docker-ce是社區免費版,docker-ee是企業收費版mysql

一.安裝docker-celinux

傳統安裝方法是:nginx

1.yum update #跟新yumgit

2.yum install -y yum-utils #安裝yum-config-managergithub

3.yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.reporedis

4.yum makecachesql

5.yum install docker-cedocker

因爲這裏用的repo是國外的,下載起來是至關的慢,因此我改爲了國內的源,手動建立了簡單repo以下:ubuntu

[root@localhost yum.repos.d]# cat docker.repocentos

[docker]

name=CentOS-7-docker

baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

而後yum makecache; yum install docker-ce,比用國外的源確實快多了

 

三.啓動docker

有兩種方式均可以啓動docker

1.臨時性的啓動,即不會隨着開機而啓動 

dockerd &

2.永久性的啓動,即開機就啓動

systemctl enable docker 

systemctl start docker

安裝啓動後,檢查docker:

 

 

 

四. docker命令

docker info 顯示Docker 系統信息,包括鏡像和容器數

docker version 顯示Docker版本信息

鏡像倉庫

  • docker pull 拉取鏡像

docker pull  path/name:tag   #path 和tag可選,默認path是docker hub的library,默認tag是latest

參數:

-a:拉取全部tag的鏡像

--disbable-content-trust :略鏡像的校驗,默認開啓

 

  • login/logout 登錄/退出鏡像倉庫

docker login [鏡像倉庫地址] -u  user -p password  #如未指定鏡像倉庫地址,默認登錄到Docer Hub

docker logout

 

  • docker push 上傳鏡像,先要登錄到鏡像倉庫

docker push name:tag 

參數:

--disable-content-trust ,默認開啓

 

  • docker search 從Docker Hub 查找鏡像

參數:

--automated :只列出自動構建的鏡像

--no-trunc :顯示完整的鏡像描述

-s n :列出收藏數大於n次的鏡像

 

  • docker imagesdocker image ls ,列出鏡像

參數:

-a:列出全部的鏡像

-f:列出知足條件的鏡像,例如docker ls -f before=redis:2.1 ;docker ls -f since=redis:2.1

-q:只顯示鏡像ID,例如docker ls -q,docker ls -q redis

--format:指定返回的模板文件

--no-trunc:顯示完整的鏡像信息

 

  • docker rmi 刪除鏡像

參數:

-f :強制刪除

 

  • docker prune 刪除未被使用的docker對象,和未被tag標記和未被容器使用的鏡像

用法:

docker image prune  刪除全部未被容器使用的對象和未被tag標記的對象

docker container prune 刪除全部中止運行的對象

docker volume prune 刪除未被掛載的卷

docker network prune 刪除全部網絡

docker system prune 刪除全部資源

 

  • docker tag 標記本地鏡像

用法:

docker tag ubuntu:16.04 ubuntu:v1 將ubuntu 標記爲ubuntu:v1鏡像

 

  • docker history 查看鏡像的建立歷史

 

  • docker save; docker load; 和docker export ;docker import  保存歸檔鏡像

用法:

docker save -o my_image.tar ubuntu:16.04 導出鏡像

docker save ubuntu:16.04 > ubuntu.tar 導出鏡像

docker load < ubuntu.tar 導入鏡像

docker load -i ubuntu.tar 導入鏡像

dcoker export ubuntu:16.04 > ubuntu.tar 導出鏡像

docker import ubuntu.tar ubuntu:v1 導入鏡像

 

  • docker build 建立鏡像

參數:

--build-arg=[] :設置鏡像建立時的變量;

--cpu-shares :設置 cpu 使用權重;

--cpu-period :限制 CPU CFS週期;

--cpu-quota :限制 CPU CFS配額;

--cpuset-cpus :指定使用的CPU id;

--cpuset-mems :指定使用的內存 id;

--disable-content-trust :忽略校驗,默認開啓;

-f :指定要使用的Dockerfile路徑;

--force-rm :設置鏡像過程當中刪除中間容器;

--isolation :使用容器隔離技術;

--label=[] :設置鏡像使用的元數據;

-m :設置內存最大值;

--memory-swap :設置Swap的最大值爲內存+swap,"-1"表示不限swap;

--no-cache :建立鏡像的過程不使用緩存;

--pull :嘗試去更新鏡像的新版本;

--quiet, -q :安靜模式,成功後只輸出鏡像 ID;

--rm :設置鏡像成功後刪除中間容器;

--shm-size :設置/dev/shm的大小,默認值是64M;

--ulimit :Ulimit配置。

--tag, -t: 鏡像的名字及標籤,一般 name:tag 或者 name 格式;能夠在一次構建中爲一個鏡像設置多個標籤。

--network: 默認 default。在構建期間設置RUN指令的網絡模式

 

docker build -t ubuntu:v1 使用當前目錄的Dockerfile建立鏡像

docker build github.com/creack/docker-firefox 使用網絡上的Dockerfile建立鏡像

docker build -f /home/test/Dockerfile 使用指定的Dockerfile

 

容器

容器的7種狀態:

created (已建立)

restarting (重啓中)

running (運行中)

removing (遷移中)

paused (暫停)

exited (中止)

dead (死亡)

 

  • docker ps 列出容器

參數:

-a :顯示全部的容器,包括未運行的

-f:根據條件過濾顯示的內容

--format:指定返回的模板文件

-l:顯示最近建立的容器

-n 5:顯示最近建立的5個容器

-q:只顯示容器編號

-s:顯示總的文件大小

 

  • docker inspect 獲取容器/鏡像的元數據

參數:

-f :指定返回的模板文件

-s:顯示總文件大小

--type:爲指定類型返回JSON

 

  • docker top 查看容器中運行的進程信息

有時並不必定要進入容器執行top,並且容器不必定有top命令,這時能夠用docker top來查看容器中正在運行的進程

用法:

docker top 【container】

 

  • docker attach 鏈接到正在運行的容器

能夠同時attach 同一個容器來屏幕共享,與screen 命令相似

Ctrl-C能夠detach 容器,爲了不Ctrl-C退出容器時將正在運行的進程也退出了,能夠加上--sig-proxy=false,Ctrl-C的信號直接被docker attach響應

用法:

docker attach 【container】

 

  • docker events 從服務器獲取實時事件

參數:

-f:根據條件過濾

--since:顯示指定時間後面的事件

--until:顯示到指定的時間爲止

 

  • docker logs 獲取容器日誌

參數:

-f:日誌輸出,例如docker logs -f mynginx

--since:指定時間後的全部日誌

-t:顯示時間戳

--tiai n :列出最新的n條日誌,例如docker logs --since "2016-07-01" --tail=10 mynginx

 

  • docker wait 等待容器運行並打印容器退出的狀態碼

用法:

docker wait container

 

  • docker port 查看端口映射

用法:

docker port mymysql

=>3306/tcp -> 0.0.0.0:3306

 

  • docker commit 從容器建立一個新的鏡像

參數:

-a :提交鏡像的做者

-c :使用Dockerfile來建立鏡像

-m:提交時的說明文字

-p: 在commit時將容器暫停

 

  • docker cp 容器與主機之間的數據拷貝

參數:

-L :保持源目標中的連接

用法:

docker cp src_file container:/dst_file

 

  • docker diff 檢查容器裏文件結構的更改

用法:

docker diff container

 

  • docker run 建立一個新的容器

參數:

-a stdin :指定標準輸入輸出類型,可選STDIN,STDOUT,STDERR

-d:後臺運行

-i:以交互模式運行,一般與-t一塊兒使用,例如docker run -i -t mysql:v1 /bin/bash

-P:隨機端口映射

-p:指定端口映射,主機端口:容器端口

-t:分配一個終端,一般與-i一塊兒使用

--name:爲容器指定一個名稱

--dns:指定容器的dns,默認和主機一致

--dns-search example.com:指定容器DNS搜索域名,默認和主機一致

-h: 指定容器的hostname

-e :設定容器的環境變量

--env-file=[]:從指定文件讀入環境變量

--cpuset="0,1,2,25-27":綁定CPU 的core

-m:設置容器使用最大內存

--net="bridge":指定容器鏈接的網絡類型,可選bridge;host;none;container

--link=[]:添加連接到令一個容器

--expose=[]:開發一個端口或一組端口

--volume,-v:綁定一個卷

 

  • docker start/stop/restart 啓動/中止/重啓 容器

 

  • docker kill 殺掉一個運行中的進程

參數:

-s:向容器發送一個信號,例如docker kill -s KILL mysql:v1

docker kill 與docker stop區別:

docker kill :強制終止容器運行,相似與斷電重插

docker stop:嘗試讓容器中止運行,相似與reboot

 

  • docker rm 刪除容器

參數:

-f:強制刪除

-l:刪除容器間的網絡鏈接

-v:刪除容器關聯的卷

 

docker pause/unpasu 暫停/恢復 容器中全部的進程

 

docker create 建立一個新的容器但不啓動它

 

docker exec 在運行的容器中執行命令

參數:

-d:在後臺運行

-t:分配一個終端

-i:保持STDIN打開

用法:

docker exec -it mysql:v1 /bin/bash   /test/sh

docker exec -it containerID /bin/bash 進入容器

 

  • docker system df #查看鏡像體積

因爲鏡像是分層存儲的,能夠繼承,複用,因此不一樣的鏡像可使用相同的基礎鏡像,因此docker images 列表中的全部像體積總和並不是是所佔的硬盤空間大小

相關文章
相關標籤/搜索