簡介
在看了 Dock Life: Using Docker for All The Things!這篇文章后寞酿,解決了我一直以來使用Linux的一個擔(dān)憂,由于對Linux運維并沒有非常熟悉脱柱,因此有時候安裝了軟件失敗或者卸載后伐弹,有文件殘留,因此希望能與host進(jìn)行隔離榨为,Docker便成了最好的解決方案惨好。如果使用的鏡像多,建議將/var
目錄獨立分區(qū)随闺,鏡像下載到/var目錄下日川,避免過度導(dǎo)致根目錄被占滿,如果有類似問題可參考:Ubuntu20.04根目錄占滿處理方法矩乐。
一龄句、網(wǎng)絡(luò)配置
未進(jìn)行特殊配置,直接在路由器手動綁定mac和ip散罕,系統(tǒng)內(nèi)部仍然使用dhcp分歇;
二、修改阿里源
1欧漱、通過命令行修改:
執(zhí)行以下sed
命令替換/etc/apt/sources.list
中的所有地址:
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
2职抡、通過文件修改:
這是阿里的鏡像地址,可以查看各種系統(tǒng)的鏡像源误甚,ubuntu修改/etc/apt/sources.list
文件如下:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
三缚甩、系統(tǒng)更新
sudo apt-get -y update
sudo apt-get -y upgrade
四谱净、安裝docker
1、安裝docker并配置鏡像加速器
在阿里容器鏡像服務(wù)注冊開發(fā)者賬號蹄胰,我的賬號是qz757
郵箱是qz757@sina.com
岳遥,登錄后,在阿里加速器獲取專屬加速器地址裕寨,類似這樣https://xxxxxx.mirror.aliyuncs.com
,然后按照指導(dǎo)進(jìn)行配置派继;
- 安裝docker
# step 1: 安裝必要的一些系統(tǒng)工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫入軟件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安裝 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
- 配置鏡像加速器
針對Docker客戶端版本大于 1.10.0 的用戶宾袜,可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2、配置當(dāng)前用戶權(quán)限
如果希望當(dāng)前用戶可運行docker驾窟,則將當(dāng)前用戶加到docker組:
sudo groupadd docker # 安裝完docker應(yīng)該默認(rèn)存在了庆猫,提示已存在說明已默認(rèn)創(chuàng)建好
sudo gpasswd -a $USER docker
newgrp docker
3、docker命令
docker命令可以參考:docker教程
五绅络、Docker常用命令
$ docker ps // 查看所有正在運行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID
$ docker rm [container id] //刪除容器
$ docker images //查看所有鏡像
$ docker rmi [image id] //刪除鏡像
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove刪除所有容器
$ docker rm `docker ps -a|grep Exited|awk '{print $1}'` //刪除所有Exited狀態(tài)的容器
$ docker logs -tf --tail="50" container_name //查看已啟動容器日志
$ docker exec -it container_name bash/sh //進(jìn)入已啟動容器shell
$ docker run -ti --rm -v ~/tmp:/tmpdata qz757/ubuntu-python:1.0.0 bash //以bash方式啟動容器并掛載臨時目錄給容器
$ docker commit [container id] [image name]
六月培、使用Makefile+Dockerfile制作Docker鏡像
以基于ubuntu鏡像構(gòu)建包含python、git包的調(diào)測鏡像為例:
1恩急、安裝make和make-doc
sudo apt-get install make-doc make -y
2杉畜、修改Dockerfile
FROM ubuntu
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
&& apt-get clean \
&& apt-get update \
&& apt-get install --assume-yes apt-utils sudo dialog \
&& echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \
&& apt-get upgrade -y \
&& apt-get install python3 python3-pip python-is-python3 vim wget curl git -y \
&& apt-get upgrade -y \
&& pip install pip -U \
&& pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
制作鏡像時給容器內(nèi)部配置代理:
ENV http_proxy http://192.168.2.169:7890
ENV https_proxy http://192.168.2.169:7890
3、修改Makefile
NAME = qz757/ubuntu-python
VERSION = 1.0.0
.PHONY: build start push
build: build-version
build-version:
docker build -t ${NAME}:${VERSION} .
tag-latest:
docker tag ${NAME}:${VERSION} ${NAME}:latest
start:
docker run -it --rm ${NAME}:${VERSION} /bin/bash
push: build-version tag-latest
docker push ${NAME}:${VERSION}; docker push ${NAME}:latest
4衷恭、制作并上傳鏡像
- 首先通過
docker login
命令登錄到docker hub此叠; - 修改Makefile名稱和版本號,qz757是賬號随珠,必須和登錄的賬號一致灭袁,否則無法提交;
-
make build
構(gòu)建容器窗看; -
make start
調(diào)測鏡像茸歧,完成后容器會刪除; -
make push
給鏡像打lastest標(biāo)簽显沈,然后提交到docker hub软瞎;
七、安裝docker-compose
- 從github下載docker-compose文件下載到
/usr/local/bin/
下(當(dāng)前該目錄下為空构罗,未安裝任何其他可執(zhí)行文件):
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 要安裝其他版本的 Compose铜涉,請?zhí)鎿Q v2.2.2
- 將可執(zhí)行權(quán)限應(yīng)用于二進(jìn)制文件:
$ sudo chmod +x /usr/local/bin/docker-compose
創(chuàng)建軟鏈(可選,ubuntu可執(zhí)行/usr/local/bin文件):
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 測試是否安裝成功:
$ docker-compose --version
Docker Compose version v2.2.2
注意: 對于 alpine遂唧,需要以下依賴包: py-pip芙代,python-dev,libffi-dev盖彭,openssl-dev纹烹,gcc页滚,libc-dev,和 make铺呵。
八裹驰、Docker Compose常用命令
$ docker-compose -f xx.yml up -d // 后臺啟動容器
$ docker-compose -f xx.yml down // 停止并刪除容器
$ docker-compose -f xx.yml stop // 停止容器
$ docker-compose -f xx.yml start // 啟動容器
標(biāo)簽和鏈接
Index: #Linux-Index
Info: #Docker