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

參考網址