Docker
出自 Chan
安裝
在 ubuntu 上安裝最新版本的 Docker 方法如下
前置作業
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
# Precise 12.04 (LTS)
$ echo "deb https://apt.dockerproject.org/repo ubuntu-precise main" | sudo tee /etc/apt/sources.list.d/docker.list
# Trusty 14.04 (LTS)
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
# Wily 15.10
$ echo "deb https://apt.dockerproject.org/repo ubuntu-wily main" | sudo tee /etc/apt/sources.list.d/docker.list
# Xenial 16.04 (LTS)
$ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
$ sudo aptitude install docker-engine
基本指令
# 抓取最新版本的 ubuntu
$ sudo docker pull ubuntu
# 可以加上版號
$ sudo docker pull ubuntu:16
# 建立一個 ubuntu 的 container
$ sudo docker run -it ubuntu bin/bash
# 啟動一個 container
$ sudo docker start chan
# 停止一個 container
$ sudo docker stop chan
# 進入一個正在執行的 container
$ sudo docker exec -it chan /bin/bash
# 建立一個 web service
$ sudo docker run -it --name web1 -p 8080:80 ubuntu /bin/bash
# 掛載目錄
$ sudo docker run -it --name web1 -p 8080:80 -v LOCAL:CONTAINER ubuntu /bin/bash
# 列出映象檔
$ sudo docker images
# 列出 container
$ sudo docker ls
# 查詢 docker 資訊
$ sudo docker inspect CONTAINER_ID
# docker container 幾乎所有資訊都可以透過 inspect 查到,像是 IP 或 mount 項目
$ sudo docker inspect CONTAINER_ID | grep -i ip
$ docker inspect CONTAINER_ID | grep Mounts -A 20
# 儲存映像檔
$ sudo docker commit -m "message" -a "author" chan/web:v1
# 刪除映像檔
$ sudo docker rmi IMAGE_ID
# 刪除 container
$ sudo docker rm CONTAINER_ID
# 複製檔案
$ sudo docker cp foo.txt mycontainer:/foo.txt
$ sudo docker cp mycontainer:/foo.txt foo.txt
# 匯出映像檔
$sudo docker save -o FILE_NAME.tar IMAGE_ID'
# 匯入映像檔
$ sudo docker load < FILE_NAME.tar
參考網址: 《Docker —— 從入門到實踐》正體中文版
小工具
$ wget -P ~ https://github.com/joshhu/docker/raw/master/docker_scripts/.bashrc_docker
$ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
此 script 會得到 denter、dip、dpid 三個指令
小技巧
# 一次停止所有 container
$ sudo docker stop $(sudo docker ps)
# 一次刪除所有 container
$ sudo docker rm $(sudo docker ps -qa)
# 一次刪除所有的 images
$ sudo docker rmi $(sudo docker images -qa)
其他
# 安裝自動完成指令
$ apt install bash-completion