Docker的簡(jiǎn)單入門

Docker是什么蔗蹋?

docker其實(shí)是一家公司名事期,其實(shí)我們常說的docker實(shí)際指的是容器。
容器就是再隔離的環(huán)境運(yùn)行的一個(gè)進(jìn)程纸颜,如果進(jìn)程停止兽泣,容器就會(huì)被銷毀。隔離的環(huán)境擁有自己的系統(tǒng)文件胁孙,ip地址唠倦,主機(jī)名等。

白話點(diǎn)講涮较,我們自己的筆記本經(jīng)常會(huì)安裝虛擬機(jī)稠鼻,才安裝應(yīng)用,中間件或數(shù)據(jù)庫(kù)等軟件狂票。這個(gè)傳統(tǒng)意義上叫虛擬化候齿,因?yàn)橐话闾摂M化出來的主機(jī)會(huì)安裝完整的操作系統(tǒng),并且會(huì)運(yùn)行我們需要運(yùn)行的程序闺属,并且是多個(gè)(web+app+DB)慌盯。
容器化,我們一般剛接觸的人員掂器,可以理解成小的虛擬化機(jī)器亚皂。你的程序在容器里面跑,同樣需要具備基礎(chǔ)環(huán)境+程序国瓮。
一般我們應(yīng)用容器化灭必,我們需要準(zhǔn)備docker的基礎(chǔ)鏡像,一般是系統(tǒng)鏡像乃摹,像常用的aplne禁漓,centos,ubuntu等,然后將我們的程序運(yùn)行上去孵睬。
邏輯上其實(shí)就跟你在linux主機(jī)上播歼,安裝你的程序一樣都需要具備,比如需要jdk肪康,gcc等荚恶。容器可以理解成小的虛擬機(jī),如果你需要web+app+DB,如果是docker容器磷支,你就需要多個(gè)容器實(shí)例(web一個(gè)谒撼,app一個(gè),db一個(gè))

上面這么說雾狈,可能讀者就糊涂了廓潜,要這么麻煩,干嘛要用容器啊。我們以前公司開發(fā)程序辩蛋,開發(fā)打包呻畸,給測(cè)試,測(cè)試安裝測(cè)試環(huán)境悼院,然后發(fā)往生產(chǎn)伤为,經(jīng)常會(huì)出現(xiàn),原來開發(fā)那据途,測(cè)試那沒有的問題绞愚,到現(xiàn)場(chǎng)就莫名其妙的錯(cuò),可能是因?yàn)槟承┮蕾嚥煌ㄓ币剑热鏹dk版本位衩,操作系統(tǒng)版本等等。使用容器你就可以避免這些問題了熔萧,除了配置文件的變更糖驴,所有的依賴都可以做成鏡像,直接發(fā)布使用即可佛致,當(dāng)然這只是其中一個(gè)有點(diǎn)贮缕。
相當(dāng)于jdk,一次構(gòu)建晌杰,隨處可用跷睦。其他我就列舉一下,讀者慢慢體會(huì)

  • 靈活:即使是最復(fù)雜的應(yīng)用也可以集裝箱化肋演。
  • 輕量級(jí):容器利用并共享主機(jī)內(nèi)核。
  • 可互換:您可以即時(shí)部署更新和升級(jí)烂琴。
  • 便攜式:您可以在本地構(gòu)建爹殊,部署到云,并在任何地方運(yùn)行奸绷。
  • 可擴(kuò)展:您可以增加并自動(dòng)分發(fā)容器副本梗夸。
  • 可堆疊:您可以垂直和即時(shí)堆疊服務(wù)。

安裝Docker

一般centos7以上基本都可以直接用如下命令安裝

yum install -y docker-io

也可以通過阿里云的方式安裝号醉,具體操作如下反症,也可以上阿里云網(wǎng)站查詢
由于國(guó)外的yum源有的時(shí)候訪問不了,我們一般采用阿里云鏡像源

centos鏡像源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# step 1: 安裝必要的一些系統(tǒng)工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加軟件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安裝Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啟Docker服務(wù)
sudo systemctl enable docker
sudo systemctl start docker 

docker的基本命令

1畔派、docker啟動(dòng)
[root@linux01 ~]# systemctl start docker
2铅碍、查看docker鏡像列表
[root@linux01 ~]# docker images
REPOSITORY            TAG             IMAGE ID       CREATED       SIZE
mysql                 5.7.37-oracle   a17d55060104   13 days ago   404MB
bitnami/etcd          latest          f8cade17916c   13 days ago   152MB
prom/prometheus       latest          514e6a882f6e   2 weeks ago   204MB
quay.io/coreos/etcd   latest          61ad63875109   3 years ago   39.5MB
從左到右依次是鏡像名稱、鏡像標(biāo)簽线椰、鏡像ID
3胞谈、查看當(dāng)前主機(jī)運(yùn)行的docker容器
[root@linux01 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
6658e8093fe4   nginx     "/docker-entrypoint.…"   19 seconds ago   Up 18 seconds   80/tcp    zealous_hellman
4、查詢可用的docker鏡像,這些鏡像是在互聯(lián)網(wǎng)上的烦绳,有的可能因?yàn)榫W(wǎng)絡(luò)問題卿捎,無法下載
[root@linux01 ~]# docker search nginx
NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.                        16439     [OK]
bitnami/nginx                                     Bitnami nginx Docker Image                      120                  [OK]
bitnami/wordpress-nginx                           Bitnami Docker Image for WordPress with NGINX   56                   [OK]
ubuntu/nginx                                      Nginx, a high-performance reverse proxy & we…   33
bitnami/nginx-ingress-controller                  Bitnami Docker Image for NGINX Ingress Contr…   16                   [OK]
rancher/nginx-ingress-controller                                                                  10
ibmcom/nginx-ingress-controller                   Docker Image for IBM Cloud Private-CE (Commu…   4
bitnami/nginx-ldap-auth-daemon                                                                    3
5、將需要的鏡像下載至本地
[root@linux01 ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
Digest: sha256:1c13bc6de5dfca749c377974146ac05256791ca2fe1979fc8e8278bf0121d285
Status: Image is up to date for nginx:latest
docker.io/library/nginx:latest
6径密、啟動(dòng)一個(gè)docker 鏡像
[root@linux01 ~]# docker run -it -d -p 8080:80 nginx
b385e2f2e6ac869eca03ed0305e6feea4430850f26926130c5582eb2cdcb551c
[root@linux01 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS        PORTS                                   NAMES
b385e2f2e6ac   nginx     "/docker-entrypoint.…"   2 seconds ago   Up 1 second   0.0.0.0:8080->80/tcp, :::8080->80/tcp   heuristic_vaughan
[root@linux01 ~]# curl http://127.0.0.1:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a >nginx.org</a>.<br/>
Commercial support is available at
<a >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@linux01 ~]#
7午阵、進(jìn)入docker 鏡像,如進(jìn)入上面啟動(dòng)的nginx
#docker exec -it 容器ID  指定shell
[root@linux01 ~]# docker exec -it b385e2f2e6ac /bin/bash
root@b385e2f2e6ac:/# ls
bin   dev          docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc
8享扔、如何停止docker鏡像
#docker stop 容器ID or docker rm -f 容器ID
[root@linux01 ~]# docker stop b385e2f2e6ac
b385e2f2e6ac
#再啟動(dòng)一個(gè)nginx,然后刪除
[root@linux01 ~]# docker run -it -d -p 8080:80 nginx
a16a82b6d636acaef906e3bbba80a0832b5b6be2ca5ea6101ecf1544f56807d3
[root@linux01 ~]# docker rm -f a16a82b6d636acaef906e3bbba80a0832b5b6be2ca5ea6101ecf1544f56807d3
a16a82b6d636acaef906e3bbba80a0832b5b6be2ca5ea6101ecf1544f56807d3
9趟庄、學(xué)會(huì)使用docker -h,查看一些常見的參數(shù)
[root@linux01 ~]# docker --help

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and
                           default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

輸出.....
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伪很,隨后出現(xiàn)的幾起案子戚啥,更是在濱河造成了極大的恐慌,老刑警劉巖锉试,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猫十,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡呆盖,警方通過查閱死者的電腦和手機(jī)拖云,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來应又,“玉大人宙项,你說我怎么就攤上這事≈昕福” “怎么了尤筐?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)洞就。 經(jīng)常有香客問我盆繁,道長(zhǎng),這世上最難降的妖魔是什么旬蟋? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任油昂,我火速辦了婚禮,結(jié)果婚禮上倾贰,老公的妹妹穿的比我還像新娘冕碟。我一直安慰自己,他們只是感情好匆浙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布安寺。 她就那樣靜靜地躺著,像睡著了一般吞彤。 火紅的嫁衣襯著肌膚如雪我衬。 梳的紋絲不亂的頭發(fā)上叹放,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音挠羔,去河邊找鬼井仰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛破加,可吹牛的內(nèi)容都是我干的俱恶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼范舀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼合是!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锭环,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤聪全,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后辅辩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體难礼,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年玫锋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛾茉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撩鹿,死狀恐怖谦炬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情节沦,我是刑警寧澤键思,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站散劫,受9級(jí)特大地震影響稚机,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜获搏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望失乾。 院中可真熱鬧常熙,春花似錦、人聲如沸碱茁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)纽竣。三九已至墓贿,卻和暖如春茧泪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背聋袋。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工队伟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人幽勒。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓嗜侮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親啥容。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锈颗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • docker 部署 標(biāo)簽(空格分隔): docker 系統(tǒng)centos6.8 mini docker 官方文檔ht...
    Lisong閱讀 676評(píng)論 0 1
  • 作為一個(gè)初次接觸Docker的人來說,最大的問題是Docker是什么咪惠?Docker是一個(gè)開源的引擎击吱,可以輕松的為任...
    何小有閱讀 1,608評(píng)論 0 0
  • Docker在我剛出來實(shí)習(xí)的時(shí)候就有接觸到,那會(huì)只是將公司里制作好的包去客戶那邊進(jìn)行簡(jiǎn)單部署遥昧,只知道Docker是...
    Coding小聰閱讀 390評(píng)論 0 9
  • 什么是Docker 開源 誕生于2013年初覆醇,基于Go語(yǔ)言的開源項(xiàng)目。 容器(沙盒) 基于Liunx的容器技術(shù)渠鸽,D...
    博客已遷移I米陽(yáng)閱讀 1,270評(píng)論 3 19
  • Docker是一個(gè)開源的引擎叫乌,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的徽缚、自給自足的容器憨奸。在本文中,將分享容器...
    聶揚(yáng)帆博客閱讀 437評(píng)論 0 1