不管是Mac仍是Windows都須要先安裝Docker Toolbox,這樣能夠更加便於你對docker的管理: Mac系統的安裝文件目錄: mirrors.aliyun.com/docker-toolbox/mac Windows系統的安裝文件目錄: mirrors.aliyun.com/docker-toolbox/windows
docker-machine create --engine-registry-mirror=https://*******(阿里爲會你提供).mirror.aliyuncs.com -d virtualbox default
docker-machine env default eval "$(docker-machine env default)" (win下使用docker-machine env default | Invoke-Expression) docker info
使用命令去阿里雲鏡像下載docker引擎 curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
您可使用以下的腳本將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
安裝源 $ 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 這個是阿里的鏡像源
apt-get install apparmor 若是你用的不是root用戶須要創建一個docker用戶組來爲那些人受權。
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 容器快照 #導入一個容器快照到本地鏡像庫
基本語法 使用#來註釋 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後臺運行的標準操做: 檢查本地是否存在指定鏡像,若是不存在先從公有倉庫下載 利益鏡像建立並啓動一個容器 分配一個文件系統,並在只讀的鏡像層外面褂子一層可讀寫層 從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去 從地址池配置一個ip地址給容器 執行用戶指定的應用程序 執行完畢後容器被終止
-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的機器上佈置倉庫,倉庫做爲容器存在。 $ 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