基于Ubuntu部署Docker環(huán)境

Docker圖標(biāo)1

簡介

在看了 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

參考文獻(xiàn)

Dock Life: Using Docker for All The Things!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市片挂,隨后出現(xiàn)的幾起案子幻林,更是在濱河造成了極大的恐慌,老刑警劉巖音念,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沪饺,死亡現(xiàn)場離奇詭異,居然都是意外死亡闷愤,警方通過查閱死者的電腦和手機整葡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讥脐,“玉大人遭居,你說我怎么就攤上這事⊙” “怎么了俱萍?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坟漱。 經(jīng)常有香客問我鼠次,道長,這世上最難降的妖魔是什么芋齿? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任腥寇,我火速辦了婚禮,結(jié)果婚禮上觅捆,老公的妹妹穿的比我還像新娘赦役。我一直安慰自己衫哥,他們只是感情好其骄,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布探橱。 她就那樣靜靜地躺著屁柏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赊时。 梳的紋絲不亂的頭發(fā)上吕粗,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天互婿,我揣著相機與錄音释移,去河邊找鬼叭披。 笑死,一個胖子當(dāng)著我的面吹牛玩讳,可吹牛的內(nèi)容都是我干的涩蜘。 我是一名探鬼主播嚼贡,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼同诫!你這毒婦竟也來了粤策?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤误窖,失蹤者是張志新(化名)和其女友劉穎叮盘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贩猎,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡熊户,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吭服。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝗罗,死狀恐怖艇棕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情串塑,我是刑警寧澤沼琉,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站桩匪,受9級特大地震影響打瘪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜傻昙,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一闺骚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧妆档,春花似錦僻爽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至须板,卻和暖如春碰镜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背习瑰。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工绪颖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杰刽。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓菠发,卻偏偏與公主長得像王滤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子滓鸠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容