若按下方操做安裝不成功請參考官方安裝說明文檔php
#卸載之前版本 sudo apt-get remove docker docker-engine #安裝docker-ce與密鑰管理與下載相關的工具 sudo apt-get install apt-transport-https ca-certificates curl python-software-properties software-properties-common #下載並安裝密鑰 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - #查看密鑰是否安裝成功 sudo apt-key fingerprint 0EBFCD88 #若是安裝成功,會出現以下內容: # pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 # uid Docker Release (CE deb) <docker@docker.com> # sub 4096R/F273FCD8 2017-02-22 #添加docker官方倉庫 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian jessie stable" #更新倉庫 sudo apt-get update #安裝docker-ce sudo apt-get install docker-ce """查看docker.service的unit文件,路徑爲/lib/systemd/system/docker.service""" """把ExecStart=/usr/bin/dockerd -H fd:// 修改成ExecStart=/usr/bin/dockerd""" #啓動docker systemctl start docker #更換國內docker加速器 #1.編輯/etc/docker/daemon.json文件,並輸入docker-cn鏡像源地址 sudo nano /etc/docker/daemon.json #輸入如下內容 {"registry-mirrors": ["https://registry.docker-cn.com"]} #添加docker用戶組 sudo groupadd docker #將你本身{$user}加入docker用戶組 sudo gpasswd -a ${USER} docker #重啓docker服務 sudo service docker restart
#查找Docker Hub上的redis鏡像 docker search redis #拉取官方的鏡像 docker pull redis:3.2 #顯示本地已有的鏡像 docker images #用下載的鏡像啓動容器並進入容器交互 docker run -t -i training/sinatra /bin/bash #提交更新後的副本 # -m 提交的說明信息 # -a 更新的用戶信息 docker commit -m "Remark" -a "DockerUserInfo" {$CONTAINER_ID} ouruser/sinatra:v2 # 修改鏡像的標籤 docker tag {$CONTAINER_ID} ouruser/sinatra:devel #導出鏡像到本地文件 docker save -o ubuntu_14.04.tar ubuntu:14.04 #載入鏡像 docker load --input ubuntu_14.04.tar #上傳鏡像到 Docker Hub docker push ouruser/sinatra #移除鏡像 docker rmi training/sinatra
#啓動容器 #-p 6379:6379 : 將容器的6379端口映射到主機的6379端口 #-v $PWD/data:/data : 將主機中當前目錄下的data掛載到容器的/data #redis-server --appendonly yes : 在容器執行redis-server啓動命令,並打開redis持久化配置 docker run -p 6379:6379 -v $PWD/data:/data -d redis:3.2 redis-server --appendonly yes #查看容器啓動狀況(-a 查看全部) docker ps #中止容器 docker stop {$CONTAINER_ID} #啓動容器 docker start {$CONTAINER_ID} #重啓容器 docker restart {$CONTAINER_ID} #進入容器(ctrl-D 退出) docker exec -it {$CONTAINER_ID} redis-cli #彩色交互 docker exec -it my-container env TERM=xterm script -q -c "/bin/bash" /dev/null #獲取容器的輸出信息 docker logs redis #導出容器快照 docker export {$CONTAINER_ID} > ubuntu.tar #導入容器快照 cat ubuntu.tar | docker import - test/ubuntu:v1.0
nginxpython
docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx # -p 80:80:將容器的80端口映射到主機的80端口 # --name mynginx:將容器命名爲mynginx # -v $PWD/www:/www:將主機中當前目錄下的www掛載到容器的/www # -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:將主機中當前目錄下的nginx.conf掛載到容器的/etc/nginx/nginx.conf # -v $PWD/logs:/wwwlogs:將主機中當前目錄下的logs掛載到容器的/wwwlogs
註冊登陸Docker Hub #docker login
#建立一個 web 容器,並加載一個數據捲到容器的 /webapp 目錄 docker run -d -P --name web -v /webapp training/webapp python app.py #建立一個命名的數據卷容器 dbdata docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres #在其餘容器中使用 --volumes-from 來掛載 dbdata 容器中的數據卷 docker run -d --volumes-from dbdata --name db1 training/postgres docker run -d --volumes-from dbdata --name db2 training/postgres #備份 # 標記來建立一個加載 dbdata 容器卷的容器,並從本地主機掛載當前到容器的 /backup 目錄 docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata #恢復遷移 # 建立一個帶有數據卷的容器 dbdata2 docker run -v /dbdata --name dbdata2 ubuntu /bin/bash # 建立另外一個容器,掛載 dbdata2 的容器,並使用 untar 解壓備份文件到掛載的容器卷中 docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
#安裝 sudo pip install -U docker-compose
#時區設置 ENV TZ=America/Los_Angeles RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone #支持中文 RUN locale-gen zh_CN.UTF-8 &&\ DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales RUN locale-gen zh_CN.UTF-8 ENV LANG zh_CN.UTF-8 ENV LANGUAGE zh_CN:zh ENV LC_ALL zh_CN.UTF-8