Docker的深入浅出(入门新手篇)
Docker的深入淺出(入門新手篇)
(持續(xù)更新中。。。。。。)
什么是Docker?
這個(gè)問題百度的話會(huì)有很多標(biāo)準(zhǔn)答案,但是晦澀難懂,鄙人從小語文不好所以在以下內(nèi)容鄙人會(huì)用個(gè)人粗俗的語音加通俗的理解來向入門的小伙伴介紹Docker到底是個(gè)什么東西?
要解決Docker是什么這個(gè)問題就要引出另外一個(gè)問題,就是計(jì)算機(jī)系統(tǒng)的分類問題,我給大家講一個(gè)故事,我是一個(gè)java新手程序員,我現(xiàn)在需要儲(chǔ)存一些數(shù)據(jù)(不要問我java中數(shù)據(jù)是什么),必然最好的辦法就是將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中(不要問我數(shù)據(jù)庫是什么),而數(shù)據(jù)庫的運(yùn)行環(huán)境可以是windows系統(tǒng),也可以是Linux系統(tǒng),那么問題來了,怎么選擇呢?簡(jiǎn)單來說,windows用戶基數(shù)大,安全性差,什么人都在用,你能保證用windows的黑客不會(huì)做壞壞的事情么?當(dāng)然做壞壞的事情是人為的,關(guān)系統(tǒng)什么事,但是使用系統(tǒng)的人多就會(huì)大大增加壞人存在的概率,加上系統(tǒng)自身安全問題對(duì)數(shù)據(jù)的保護(hù)不夠,數(shù)據(jù)就會(huì)很容出問題,丟失被盜MMP喲,而Linux系統(tǒng)的安全性就要高于windows,所以必然小白的我選擇了Linux安裝數(shù)據(jù)庫,那么問題又來了,Linux安裝軟件是什么體驗(yàn)?我們正常用windows安裝軟件的是點(diǎn)擊安裝,然后呆萌的看一看進(jìn)度條,啪啪啪的點(diǎn)幾下安裝選項(xiàng),瞄兩眼旁邊的小電影,叮的一聲就安好了,但是Linux呢?當(dāng)我們要安裝mysql在Linux上時(shí),首先要湊齊mysql在Linux上的安裝環(huán)境(不要問我什么是安裝環(huán)境),這就是一個(gè)唐僧取經(jīng)的過程了,因?yàn)檫@過程中可能其中一個(gè)環(huán)境要素還需要其他的環(huán)境因素,就像你想看小電影,首先要有播放它的硬件,比如電視電腦什么的,而電視電腦要運(yùn)行就要有電,而有電就要有發(fā)電廠,而這些底層運(yùn)行環(huán)境你都要一一湊齊,開心不?湊齊這些容易么?所以這個(gè)時(shí)候就有個(gè)神人跳了出來為大家解決這個(gè)問題,發(fā)明了一個(gè)牛皮的小東西,這個(gè)牛皮的小東西裝在Linux上就幫你搞定安裝環(huán)境的事情了,你只要搞定這個(gè)小東西就可以在Linux系統(tǒng)上為所欲為的安裝,當(dāng)然這個(gè)小東西的發(fā)展歷史還是很漫長(zhǎng)的,而Docker就是這個(gè)小東西長(zhǎng)成到現(xiàn)在的樣子,取經(jīng)的過程Docker去幫你弄,而你可以直接去用經(jīng),是不是很爽?當(dāng)然聽起來沒多爽,如果真的讓你自己去試試在Linux直接安裝軟件,用我們老師的話就是飛雞兒難!那么Docker又是怎么做到的呢?
簡(jiǎn)單了解Docker工作原理
其實(shí)Docker就是一個(gè)幫你在Linux上安裝軟件的又一個(gè)軟件(不要問怎么在Linux上安裝Docker),Docker的Logo圖標(biāo)也瘋狂的明示了它的功能,一個(gè)軟件搬運(yùn)工,還飛雞兒能搬,搬的還快,牛皮的不得了,現(xiàn)在簡(jiǎn)單概要的介紹一下Docker的工作過程,首先Docker被孤寂帥氣的打開,然后Docker會(huì)在網(wǎng)絡(luò)上拉取軟件的運(yùn)行環(huán)境生成軟件的鏡像(就是得到運(yùn)行軟件的先決條件集合的過程),這個(gè)鏡像是個(gè)非常關(guān)鍵的東西,它就像虛擬出來一臺(tái)小電腦,一臺(tái)已經(jīng)安裝好mysql的小電腦,并且可以運(yùn)行mysql,但是我們的電腦此時(shí)和這個(gè)小電腦根本沒有聯(lián)系,它就算在那開小差看島國小姐姐跳舞我們都不知道,于是Docker就產(chǎn)生了容器這個(gè)東西!t它可以將mysql的端口映射給Linux,從而實(shí)現(xiàn)我們?cè)贚inux系統(tǒng)下操作運(yùn)行Docker中的mysql。以下以CentOS Docker安裝舉例。
CentOS Docker 安裝
Docker 支持以下的 64 位 CentOS 版本:
- CentOS 7
- CentOS 8
- 更高版本…
使用官方安裝腳本自動(dòng)安裝
安裝命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun也可以使用國內(nèi) daocloud 一鍵安裝命令:
curl -sSL https://get.daocloud.io/docker | sh手動(dòng)安裝
卸載舊版本
較舊的 Docker 版本稱為 docker 或 docker-engine 。如果已安裝這些程序,請(qǐng)卸載它們以及相關(guān)的依賴項(xiàng)。
$ sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
安裝 Docker Engine-Community
使用 Docker 倉庫進(jìn)行安裝
在新主機(jī)上首次安裝 Docker Engine-Community 之前,需要設(shè)置 Docker 倉庫。之后,您可以從倉庫安裝和更新 Docker。
設(shè)置倉庫
安裝所需的軟件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存儲(chǔ)驅(qū)動(dòng)程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
使用以下命令來設(shè)置穩(wěn)定的倉庫。
使用官方源地址(比較慢)
$ sudo yum-config-manager
–add-repo
https:**//download.docker.com/linux/centos/**docker-ce.repo
可以選擇國內(nèi)的一些源地址:
阿里云
$ sudo yum-config-manager
–add-repo
http:**//mirrors.aliyun.com/docker-ce/linux/centos/**docker-ce.repo
清華大學(xué)源
$ sudo yum-config-manager
–add-repo
https:**//mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/**docker-ce.repo
安裝 Docker Engine-Community
安裝最新版本的 Docker Engine-Community 和 containerd,或者轉(zhuǎn)到下一步安裝特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io如果提示您接受 GPG 密鑰,請(qǐng)選是。
有多個(gè) Docker 倉庫嗎?
如果啟用了多個(gè) Docker 倉庫,則在未在 yum install 或 yum update 命令中指定版本的情況下,進(jìn)行的安裝或更新將始終安裝最高版本,這可能不適合您的穩(wěn)定性需求。
Docker 安裝完默認(rèn)未啟動(dòng)。并且已經(jīng)創(chuàng)建好 docker 用戶組,但該用戶組下沒有用戶。
要安裝特定版本的 Docker Engine-Community,請(qǐng)?jiān)诖鎯?chǔ)庫中列出可用版本,然后選擇并安裝:
1、列出并排序您存儲(chǔ)庫中可用的版本。此示例按版本號(hào)(從高到低)對(duì)結(jié)果進(jìn)行排序。
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
2、通過其完整的軟件包名稱安裝特定版本,該軟件包名稱是軟件包名稱(docker-ce)加上版本字符串(第二列),從第一個(gè)冒號(hào)(:)一直到第一個(gè)連字符,并用連字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io啟動(dòng) Docker。
$ sudo systemctl start docker通過運(yùn)行 hello-world 映像來驗(yàn)證是否正確安裝了 Docker Engine-Community 。
$ sudo docker run hello-world卸載 docker
刪除安裝包:
yum remove docker-ce刪除鏡像、容器、配置文件等內(nèi)容:
rm -rf /var/lib/dockerDocker 安裝 MySQL
MySQL 是世界上最受歡迎的開源數(shù)據(jù)庫。憑借其可靠性、易用性和性能,MySQL 已成為 Web 應(yīng)用程序的數(shù)據(jù)庫優(yōu)先選擇。
1、查看可用的 MySQL 版本
訪問 MySQL 鏡像庫地址:https://hub.docker.com/_/mysql?tab=tags 。
可以通過 Sort by 查看其他版本的 MySQL,默認(rèn)是最新版本 mysql:latest 。
你也可以在下拉列表中找到其他你想要的版本:
此外,我們還可以用 docker search mysql 命令來查看可用版本:
$ docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relati... 2529 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Crea... 161 [OK] centurylink/mysql Image containing mysql. Optimized to be li... 45 [OK] sameersbn/mysql 36 [OK] google/mysql MySQL server for Google Compute Engine 16 [OK] appcontainers/mysql Centos/Debian Based Customizable MySQL Con... 8 [OK] marvambass/mysql MySQL Server based on Ubuntu 14.04 6 [OK] drupaldocker/mysql MySQL for Drupal 2 [OK] azukiapp/mysql Docker image to run MySQL by Azuki - http:... 2 [OK] ...2、拉取 MySQL 鏡像
這里我們拉取官方的最新版本的鏡像:
$ docker pull mysql:latest3、查看本地鏡像
使用以下命令來查看是否已安裝了 mysql:
$ docker images在上圖中可以看到我們已經(jīng)安裝了最新版本(latest)的 mysql 鏡像。
4、運(yùn)行容器
安裝完成后,我們可以使用以下命令來運(yùn)行 mysql 容器:
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql參數(shù)說明:
- -p 3306:3306 :映射容器服務(wù)的 3306 端口到宿主機(jī)的 3306 端口,外部主機(jī)可以直接通過 宿主機(jī)ip:3306 訪問到 MySQL 的服務(wù)。
- MYSQL_ROOT_PASSWORD=123456:設(shè)置 MySQL 服務(wù) root 用戶的密碼。
5、安裝成功
通過 docker ps 命令查看是否安裝成功:
本機(jī)可以通過 root 和密碼 123456 訪問 MySQL 服務(wù)。
016/06/docker-mysql4.png)
5、安裝成功
通過 docker ps 命令查看是否安裝成功:
[外鏈圖片轉(zhuǎn)存中…(img-hPmN1dSU-1626865955185)]
本機(jī)可以通過 root 和密碼 123456 訪問 MySQL 服務(wù)。
總結(jié)
以上是生活随笔為你收集整理的Docker的深入浅出(入门新手篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 终于去看了麦兜响当当
- 下一篇: 成为Linux大神——必须要具备的基本技