Docker的安裝與經常使用命令

Docker的安裝與經常使用指令

Docker在Windows或Mac上的安裝流程及命令

安裝的前的準備
不管是Mac仍是Windows都須要先安裝Docker Toolbox,這樣能夠更加便於你對docker的管理:
Mac系統的安裝文件目錄: mirrors.aliyun.com/docker-toolbox/mac
Windows系統的安裝文件目錄: mirrors.aliyun.com/docker-toolbox/windows
建立一臺安裝有Docker環境的Linux虛擬機,指定機器名稱爲default,同時配置Docker加速器地址。
docker-machine create --engine-registry-mirror=https://*******(阿里爲會你提供).mirror.aliyuncs.com -d virtualbox default
查看機器的環境配置,並配置到本地。而後經過Docker客戶端訪問Docker服務。(每次關機重啓後都要執行)
docker-machine env default 
eval "$(docker-machine env default)" (win下使用docker-machine env default | Invoke-Expression)
docker info

Docker在Linux上的配置

Ubuntu安裝docker
使用命令去阿里雲鏡像下載docker引擎
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
配置Docker加速器
您可使用以下的腳本將mirror的配置添加到docker daemon的啓動參數中(12.04和14.04)
echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=https://ie68a4mu.mirror.aliyuncs.com\"" | sudo tee -a /etc/default/docker
sudo service docker restart
支持https鏡像源
安裝源
$ sudo apt-get install apt-transport-https ca-certificates
添加gpg祕鑰
$ sudo apt-key adv --keyserver hk70ADBF76221572C******(阿里爲提供)
獲取當前系統代號
$ lsb_release -c
Codename:   trusty
打開/etc/apt/sources.list.d/docker.list加入deb [arch=amd64] http://mirrors.aliyun.com/docker-engine/apt/repo ubuntu-trusty main 這個是阿里的鏡像源
安裝apparmor安全模塊
apt-get install apparmor
若是你用的不是root用戶須要創建一個docker用戶組來爲那些人受權。
docker-machine經常使用命令
docker search 鏡像名        #在鏡像倉庫中搜索某一類鏡像
docker pull 鏡像名          #從倉庫中將某一鏡像下載下來
docker images               #查看全部鏡像
docker run -it 鏡像名:標籤名 /bin/bash             #實例化運行某一鏡像虛擬到容器
docker ps -a                #查看全部容器(不加-a是查看正在運行的容器)
docker build -t="鏡像名:標籤名" .   #在當前文件夾下尋找Dockerfile文件,按照其內容打包鏡像
docker commit -m "提該次交的描述" -a "提交人" 容器名或ID 鏡像名:標籤名  #將一個容器轉化爲一個鏡像(有依賴關係)(一個鏡像最多不能超過127層)
docker rm 容器名或ID         #刪除某容器(所有清除docker rm $(docker ps -a -q))
docker rmi 鏡像名或ID        #刪除某鏡像(刪除以前確保改鏡像沒有依賴)
docker save -o 鏡像包名.tar 鏡像名:標籤名    #將鏡像打包成壓縮文件
docker load --input 鏡像包.tar    #從鏡像包裏面加載鏡像
docker start 容器名或ID      #開啓某容器
docker stop 容器名或ID       #關閉某容器
docker restart 容器名或ID    #重啓某容器
docker attach 容器名或ID     #進入某一正在運行中的容器
docker login                 #登陸到dockerhub倉庫
docker push 鏡像名:標籤名    #將該鏡像上傳到倉庫中
docker tag 鏡像名或ID 新鏡像名:標籤名    #將該鏡像更名
docker logs 容器名或ID       #打印容器日誌
docker import 容器快照       #導入一個容器快照到本地鏡像庫
Dockfile文件
基本語法
使用#來註釋
FROM代表要使用那個鏡像做爲基礎鏡像
FROM 鏡像名:標籤
維護這信息
MAINTAINER 維護者名字
RUN命令表示建立鏡像是會運行的命令,好比安裝應用
RUN apt-get -qq update
RUN apt-get -y install vim
除了這些還可使用ADD命令複製本地文件到鏡像
ADD my.conf /var/www
使用EXPOSE命令來向外部開放端口
EXPOSE 80
用CMD命令來描述容器啓動後運行的程序
CMD ["/usr/sbin/apachectl","-D","FOREGROUND"]
docker run命令詳解
當使用docker run建立容器時,docker後臺運行的標準操做:
檢查本地是否存在指定鏡像,若是不存在先從公有倉庫下載
利益鏡像建立並啓動一個容器
分配一個文件系統,並在只讀的鏡像層外面褂子一層可讀寫層
從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去
從地址池配置一個ip地址給容器
執行用戶指定的應用程序
執行完畢後容器被終止
docker run命令參數
-a, --attach=[]             # 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項
--add-host=[]               Add a custom host-to-IP mapping (host:ip)
--blkio-weight=0            Block IO (relative weight), between 10 and 1000
-c, --cpu-shares=0          CPU shares (relative weight)
--cap-add=[]                Add Linux capabilities
--cap-drop=[]               Drop Linux capabilities
--cgroup-parent=            Optional parent cgroup for the container
--cidfile=                  Write the container ID to the file
--cpu-period=0              Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota=0               Limit the CPU CFS quota
--cpuset-cpus=              # 綁定容器到指定CPU運行
--cpuset-mems=              # 綁定容器到指定MEM運行
-d, --detach=false          # 後臺運行容器,並返回容器ID
--device=[]                 Add a host device to the container
--dns=[]                    # 指定容器使用的DNS服務器,默認和宿主一致
--dns-search=[]             # 指定容器DNS搜索域名,默認和宿主一致
-e, --env=[]                # 設置環境變量
--entrypoint=               Overwrite the default ENTRYPOINT of the image
--env-file=[]               # 從指定文件讀入環境變量
--expose=[]                 Expose a port or a range of ports
-h, --hostname=             # 指定容器的hostname
--help=false                Print usage
-i, --interactive=false     # 以交互模式運行容器,一般與 -t 同時使用
--ipc=                      IPC namespace to use
-l, --label=[]              Set meta data on a container
--label-file=[]             Read in a line delimited file of labels
--link=[]                   Add link to another container
--log-driver=               Logging driver for container
--log-opt=[]                Log driver options
--lxc-conf=[]               Add custom lxc options
-m, --memory=               Memory limit
--mac-address=              Container MAC address (e.g. 92:d0:c6:0a:29:33)
--memory-swap=              Total memory (memory + swap), '-1' to disable swap
--name=                     # 爲容器指定一個名稱
--net=bridge                # 指定容器的網絡鏈接類型,支持 bridge/host/none/container:<name|id> 四種類型
--oom-kill-disable=false    Disable OOM Killer
-P, --publish-all=false     Publish all exposed ports to random ports
-p, --publish=[]            Publish a container's port(s) to the host
--pid=                      PID namespace to use
--privileged=false          Give extended privileges to this container
--read-only=false           Mount the container's root filesystem as read only
--restart=no                Restart policy to apply when a container exits
--rm=false                  Automatically remove the container when it exits
--security-opt=[]           Security Options
--sig-proxy=true            Proxy received signals to the process
-t, --tty=false             # 爲容器從新分配一個僞輸入終端,一般與 -i 同時使用
-u, --user=                 Username or UID (format: <name|uid>[:<group|gid>])
--ulimit=[]                 Ulimit options
--uts=                      UTS namespace to use
-v, --volume=[]             Bind mount a volume
--volumes-from=[]           Mount volumes from the specified container(s)
-w, --workdir=              Working directory inside the container
docker registry私有倉庫搭建
在一臺有docker的機器上佈置倉庫,倉庫做爲容器存在。
$ sudo docker run -d -p 5000:5000 registry
這個時候須要給要上傳倉庫的鏡像包更名字
$ docker tag 鏡像名或ID 倉庫IP:倉庫端口號/鏡像名:標籤名
而後將docker鏡像上傳到倉庫
$ docker push 倉庫IP:倉庫端口號/鏡像名:標籤名
在拉鏡像的時候可能會遇到server gave HTTP response to HTTPS client
這個時候在/etc/docker/daemon.json文件中加入{"insecure-registries":["IP地址:端口號"]}

文章來自個人我的博客,歡迎轉載:Docker的安裝與經常使用命令docker

相關文章
相關標籤/搜索