Docker:修订间差异
跳到导航
跳到搜索
此页面具有访问限制。如果您看见此消息,则说明您没有权限访问此页面。
(→安裝) |
(→外部連結) |
||
(未显示同一用户的25个中间版本) | |||
第6行: | 第6行: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo | sudo mkdir /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg; echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list; sudo apt update; sudo apt install -y docker-ce; sudo apt clean | ||
</syntaxhighlight> | </syntaxhighlight> | ||
第12行: | 第12行: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo | sudo mkdir /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg; echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list; sudo apt update; sudo apt install -y docker-ce; sudo apt clean | ||
</syntaxhighlight> | </syntaxhighlight> | ||
如果是Raspberry Pi的話(32-bit OS), 可以 這樣安裝 : | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt install -y docker- | sudo mkdir /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg; echo "deb [signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list; sudo apt update; sudo apt install -y docker-ce; sudo apt clean | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== docker compose(docker-compose) === | |||
另外可以加裝Docker Compose套件,這個套件有兩個版本,一個是Plugin版本,另外一個 是 獨立的檔案: | |||
<syntaxhighlight lang="bash"> | |||
sudo apt install -y docker-compose docker-compose-plugin; sudo apt clean | |||
</syntaxhighlight> | |||
這兩個用法都可以用,但要注意版本有可能不一樣造成差異 : | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
docker compose | |||
docker-compose | |||
</syntaxhighlight> | |||
=== docker-machine === | |||
目前已經deprecated<ref>{{Cite web |url=https://github.com/docker/machine/issues/4537 |title=Docker Machine is now in maintenance mode #4537 |accessdate=2022-07-13 |language=en}}</ref>。沒有套件可以裝,直接安裝binary<ref>{{Cite web |url=https://docs.docker.com/machine/install-machine/ |title=Install Docker Machine {{!}} Docker Documentation |language=en |accessdate=2021-07-21}}</ref>: | |||
<syntaxhighlight lang="bash"> | |||
base=https://github.com/docker/machine/releases/download/v0.16.2 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== 範例 == | == 範例 == | ||
啟動一個簡單的[[Ubuntu]]環境: | 啟動一個簡單的[[Ubuntu]]環境: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
docker run -i -t --rm ubuntu:latest /bin/bash | docker run -i -t --rm ubuntu:latest /bin/bash | ||
</syntaxhighlight> | |||
或是特定版本: | |||
<syntaxhighlight lang="bash"> | |||
docker run -i -t --rm ubuntu:jammy /bin/bash | |||
</syntaxhighlight> | </syntaxhighlight> | ||
然後把APT的伺服器換掉: | 然後把APT的伺服器換掉: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
perl -pi -e 's/archive.ubuntu.com/tw.archive.ubuntu.com/g' /etc/apt/sources.list | perl -pi -e 's/archive.ubuntu.com/tw.archive.ubuntu.com/g' /etc/apt/sources.list | ||
第40行: | 第66行: | ||
裝些簡單的東西: | 裝些簡單的東西: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt install -y curl vim-nox wget | apt install -y curl vim-nox wget | ||
</syntaxhighlight> | |||
如果要讓container內可以存取到host主機的內容,有兩類方法,一種是直接在網路界面層打通<code>--network=host</code>,但這個方法只能在Linux上使用: | |||
<syntaxhighlight lang="bash"> | |||
docker run -i -t --rm --network=host ubuntu:latest /bin/bash | |||
</syntaxhighlight> | |||
另外一種是透過hostname的方法打通,內部的機器可以使用<code>host.docker.internal</code>這個名稱存取。但要注意因為跨了界面,不會算在<code>lo</code>流量(<code>lo</code>的流量通常都會pass all),需要在[[iptables]]或是[[UFW]]設定對應的規則: | |||
<syntaxhighlight lang="bash"> | |||
docker run -i -t --rm -add-host host.docker.internal:host-gateway ubuntu:latest /bin/bash | |||
</syntaxhighlight> | </syntaxhighlight> | ||
第49行: | 第88行: | ||
docker system prune | docker system prune | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 參考文獻 == | |||
{{Reflist|2}} | |||
== 相關連結 == | |||
* [[Podman]] | |||
== 外部連結 == | == 外部連結 == |
2024年2月17日 (六) 17:14的最新版本
Docker是一套提供容器(英语:Container)的软件。
安装
可以用这个一行指令直接安装:
sudo mkdir /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg; echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list; sudo apt update; sudo apt install -y docker-ce; sudo apt clean
另外arm64的平台可以这样安装:
sudo mkdir /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg; echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list; sudo apt update; sudo apt install -y docker-ce; sudo apt clean
如果是Raspberry Pi的话(32-bit OS),可以这样安装:
sudo mkdir /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg; echo "deb [signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list; sudo apt update; sudo apt install -y docker-ce; sudo apt clean
docker compose(docker-compose)
另外可以加装Docker Compose套件,这个套件有两个版本,一个是Plugin版本,另外一个是独立的档案:
sudo apt install -y docker-compose docker-compose-plugin; sudo apt clean
这两个用法都可以用,但要注意版本有可能不一样造成差异:
docker compose
docker-compose
docker-machine
目前已经deprecated[1]。没有套件可以装,直接安装binary[2]:
base=https://github.com/docker/machine/releases/download/v0.16.2 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
范例
启动一个简单的Ubuntu环境:
docker run -i -t --rm ubuntu:latest /bin/bash
或是特定版本:
docker run -i -t --rm ubuntu:jammy /bin/bash
然后把APT的服务器换掉:
perl -pi -e 's/archive.ubuntu.com/tw.archive.ubuntu.com/g' /etc/apt/sources.list
apt update -y
装些简单的东西:
apt install -y curl vim-nox wget
如果要让container内可以存取到host主机的内容,有两类方法,一种是直接在网络界面层打通--network=host
,但这个方法只能在Linux上使用:
docker run -i -t --rm --network=host ubuntu:latest /bin/bash
另外一种是透过hostname的方法打通,内部的机器可以使用host.docker.internal
这个名称存取。但要注意因为跨了界面,不会算在lo
流量(lo
的流量通常都会pass all),需要在iptables或是UFW设定对应的规则:
docker run -i -t --rm -add-host host.docker.internal:host-gateway ubuntu:latest /bin/bash
常用指令
docker system prune
参考文献
- ↑ Docker Machine is now in maintenance mode #4537. [2022-07-13] (English).
- ↑ Install Docker Machine | Docker Documentation. [2021-07-21] (English).