Docker的深入浅出(入门新手篇)
Docker的深入淺出(入門新手篇)
(持續(xù)更新中。。。。。。)
什么是Docker?
這個問題百度的話會有很多標(biāo)準(zhǔn)答案,但是晦澀難懂,鄙人從小語文不好所以在以下內(nèi)容鄙人會用個人粗俗的語音加通俗的理解來向入門的小伙伴介紹Docker到底是個什么東西?
要解決Docker是什么這個問題就要引出另外一個問題,就是計算機(jī)系統(tǒng)的分類問題,我給大家講一個故事,我是一個java新手程序員,我現(xiàn)在需要儲存一些數(shù)據(jù)(不要問我java中數(shù)據(jù)是什么),必然最好的辦法就是將數(shù)據(jù)存儲在數(shù)據(jù)庫中(不要問我數(shù)據(jù)庫是什么),而數(shù)據(jù)庫的運行環(huán)境可以是windows系統(tǒng),也可以是Linux系統(tǒng),那么問題來了,怎么選擇呢?簡單來說,windows用戶基數(shù)大,安全性差,什么人都在用,你能保證用windows的黑客不會做壞壞的事情么?當(dāng)然做壞壞的事情是人為的,關(guān)系統(tǒng)什么事,但是使用系統(tǒng)的人多就會大大增加壞人存在的概率,加上系統(tǒng)自身安全問題對數(shù)據(jù)的保護(hù)不夠,數(shù)據(jù)就會很容出問題,丟失被盜MMP喲,而Linux系統(tǒng)的安全性就要高于windows,所以必然小白的我選擇了Linux安裝數(shù)據(jù)庫,那么問題又來了,Linux安裝軟件是什么體驗?我們正常用windows安裝軟件的是點擊安裝,然后呆萌的看一看進(jìn)度條,啪啪啪的點幾下安裝選項,瞄兩眼旁邊的小電影,叮的一聲就安好了,但是Linux呢?當(dāng)我們要安裝mysql在Linux上時,首先要湊齊mysql在Linux上的安裝環(huán)境(不要問我什么是安裝環(huán)境),這就是一個唐僧取經(jīng)的過程了,因為這過程中可能其中一個環(huán)境要素還需要其他的環(huán)境因素,就像你想看小電影,首先要有播放它的硬件,比如電視電腦什么的,而電視電腦要運行就要有電,而有電就要有發(fā)電廠,而這些底層運行環(huán)境你都要一一湊齊,開心不?湊齊這些容易么?所以這個時候就有個神人跳了出來為大家解決這個問題,發(fā)明了一個牛皮的小東西,這個牛皮的小東西裝在Linux上就幫你搞定安裝環(huán)境的事情了,你只要搞定這個小東西就可以在Linux系統(tǒng)上為所欲為的安裝,當(dāng)然這個小東西的發(fā)展歷史還是很漫長的,而Docker就是這個小東西長成到現(xiàn)在的樣子,取經(jīng)的過程Docker去幫你弄,而你可以直接去用經(jīng),是不是很爽?當(dāng)然聽起來沒多爽,如果真的讓你自己去試試在Linux直接安裝軟件,用我們老師的話就是飛雞兒難!那么Docker又是怎么做到的呢?
簡單了解Docker工作原理
其實Docker就是一個幫你在Linux上安裝軟件的又一個軟件(不要問怎么在Linux上安裝Docker),Docker的Logo圖標(biāo)也瘋狂的明示了它的功能,一個軟件搬運工,還飛雞兒能搬,搬的還快,牛皮的不得了,現(xiàn)在簡單概要的介紹一下Docker的工作過程,首先Docker被孤寂帥氣的打開,然后Docker會在網(wǎng)絡(luò)上拉取軟件的運行環(huán)境生成軟件的鏡像(就是得到運行軟件的先決條件集合的過程),這個鏡像是個非常關(guān)鍵的東西,它就像虛擬出來一臺小電腦,一臺已經(jīng)安裝好mysql的小電腦,并且可以運行mysql,但是我們的電腦此時和這個小電腦根本沒有聯(lián)系,它就算在那開小差看島國小姐姐跳舞我們都不知道,于是Docker就產(chǎn)生了容器這個東西!t它可以將mysql的端口映射給Linux,從而實現(xiàn)我們在Linux系統(tǒng)下操作運行Docker中的mysql。以下以CentOS Docker安裝舉例。
CentOS Docker 安裝
Docker 支持以下的 64 位 CentOS 版本:
- CentOS 7
- CentOS 8
- 更高版本…
使用官方安裝腳本自動安裝
安裝命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun也可以使用國內(nèi) daocloud 一鍵安裝命令:
curl -sSL https://get.daocloud.io/docker | sh手動安裝
卸載舊版本
較舊的 Docker 版本稱為 docker 或 docker-engine 。如果已安裝這些程序,請卸載它們以及相關(guān)的依賴項。
$ 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 存儲驅(qū)動程序需要 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 密鑰,請選是。
有多個 Docker 倉庫嗎?
如果啟用了多個 Docker 倉庫,則在未在 yum install 或 yum update 命令中指定版本的情況下,進(jìn)行的安裝或更新將始終安裝最高版本,這可能不適合您的穩(wěn)定性需求。
Docker 安裝完默認(rèn)未啟動。并且已經(jīng)創(chuàng)建好 docker 用戶組,但該用戶組下沒有用戶。
要安裝特定版本的 Docker Engine-Community,請在存儲庫中列出可用版本,然后選擇并安裝:
1、列出并排序您存儲庫中可用的版本。此示例按版本號(從高到低)對結(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)加上版本字符串(第二列),從第一個冒號(:)一直到第一個連字符,并用連字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io啟動 Docker。
$ sudo systemctl start docker通過運行 hello-world 映像來驗證是否正確安裝了 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、運行容器
安裝完成后,我們可以使用以下命令來運行 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的深入浅出(入门新手篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 终于去看了麦兜响当当
- 下一篇: 海豚调度(DolphinSchedule