Docker容器從一知半解到入門
Docker 是一個開源的、跨平臺的應用容器引擎,可以讓技術開發認用打包他們的應用以及一些依賴包到一個可移植的容器平臺中,釋出到任何流行的 作業系統上面,也可以在Windows和mac作業系統上面跑,容器是完全使用沙箱機制,容器相互之間不會存在任何介面。docker應用廣泛、安全性好、執行快、節約資源、移植性好、自動化部署快等有點。
下面我們來看一張docker映象基本原處理圖:
我們在學習Docker映象的時候,使用系統預設的yum源安裝會非常慢,很有可能會安裝失敗,因為docker伺服器在國外,訪問速度非常慢,訪問網路也不穩定,而且國外的docker hub官網拉取映象也太慢了,我們可以直接修改用國內的阿里的容器Hub服務 的控制檯,這裡需要登入阿里賬號或者支付寶賬號,也可以使用騰訊雲、百度雲、華為雲、ucloud、網易雲等都有docker映象hub,我這裡使用的阿里雲映象服務;在學習docker容器的前提下還是要對Linux要有點基礎,這樣學起來就容易上手,如果完全不懂Linux,還是建議你去學習下 這邊教程裡面的內容非常詳細,比較適合初學者。此文章比較適合於企業應用。
1 、Centos 7 install docker-ce
安裝指定版本的Docker-CE:
# Step 1: 查詢Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
* updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror
Installed Packages
* extras: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
docker-ce.x86_64 3:18.09.0-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
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
* base: mirrors.cqu.edu.cn
Available Packages
# Step2: 安裝指定版本的Docker-CE
# sudo yum -y install docker-ce-[VERSION]
安裝最新版本的Docker-CE:
# step 1: 安裝必要的一些系統工具
yum install -y yum-utils device-mapper-persistent-data lvm2 -y
# Step 2: 新增軟體源資訊
yum-config-manager --add-repo
# Step 3: 更新並安裝Docker-CE
yum makecache fast
yum -y install docker-ce
# Step 4: 開啟Docker服務
systemctl start docker.service
Step 5: 檢視Docker安裝版本
docker --version
Docker version 18.09.0, build 4d60db4
2 、docker安裝目錄結構
3 、啟動和停止映象
3.1 、啟動容器
自定義映象名:便於區分
-d 後臺執行
指定主機啟動的名稱
[root@centos7 ~]# docker run -itd -h hostname 映象
舉例:
[root@centos7 ~]# docker run -itd docker.io/ubuntu /bin/bash
root@82f8b90c9eba:/#
3.2 、停止/退出, docker 退出容器,並且關閉容器
exit
docker 退出容器,而不關閉容器:
ctrl+p ctrl+q // 這裡2個步驟
ctrl+p+q
3.3 、docker 給執行的容器對映本地埠
[root@centos7 ~]# docker run -itd -p 0.0.0.0:80:80 --name apache docker.io/ubuntu /bin/bash
4 、docker常用命令及解釋如下
docker search nginx // 搜尋映象庫
docker pull nginx // 選擇合適的映象並拉取映象
docker images nginx // 在本地映象列表裡查到 REPOSITORY 為 nginx 的映象
docker images httpd // 在本地映象列表裡查到 REPOSITORY 為apache的映象
docker info // 檢視docker資訊
docker version // 檢視docker版本
docker pull 映象名稱 //下載(拉)映象
docker push 映象名稱 //上傳映象
docker load -i 映象名稱.tar //匯入映象
docker images // 檢視所有已經安裝的映象列表
docker attach 映象名/映象ID //進入映象裡面
docker exec 映象名/映象ID ls /home //在執行shell命令到容器裡面
舉例:a.txt b.txt是我開始建立的2個文字檔案
[root@centos7 ~]# docker exec elegant_bhaskara ls /home
a.txt
b.txt
[root@centos7 ~]# docker stop 映象名/映象ID //停止映象
[root@centos7 ~]# docker tag 原映象名 新映象名 //生成新的images
舉例:docker tag docker.io/ubuntu ubuntu:laste
[root@centos7 ~]# docker run -it test:ubuntu /bin/bash
[root@centos7 ~]# docker commit hopeful_carson(NAMES) ubuntu (REPOSITORY):self(tag) //提交映象,生成新的映象,映象裡面的配置也保留了,便於多個版本的管理
[root@centos7 ~]# docker run -itd --name test01_self ubuntu:self 用提交的映象再啟動新的映象
0f280fd95659c81fcff4069bb53ff53b07d06b28de05111dd5a9177e16865f22
[root@centos7 ~]# docker exec test01_self ls /home
5 、提交執行中的容器為一個映象 (這樣不會丟失在容器的各種操作)
[root@centos7 ~]# docker commit clever_haibt clever_haibt_new
### clever_haibt ( 執行容器名稱) clever_haibt_new ( 生成映象名稱)
6 、 執行映象並新增埠
[root@centos7 ~]# docker run -d -it -p 80:80 clever_haibt_new:latest /bin/bash
### 小p是自定義埠 latest 是映象的標籤(最好寫上專業點)
舉例apache:httpd:latest
# docker run -d -it -p 80:80 httpd:latest
測試:
7 、列出執行的映象
[root@centos7 ~]# docker ps // 檢視已執行的容器狀態
檢視映象、容器、資料卷所佔用的空間
[root@centos7 ~]# docker system df
8 、Docker本身提供了兩種終止容器執行的方式,檢視幫助
[root@centos7 ~]# docker stop --help
舉例:docker stop NAMES
docker kill --help
9 、linux下解決docker埠對映到宿主機後外網無法訪問的問題?
解決辦法:
[root@centos7 ~] # vim /etc/sysctl.conf
或者
[root@centos7 ~] # vim /usr/lib/sysctl.d/00-system.conf
新增如下程式碼:
net.ipv4.ip_forward= 1
重啟network服務
# systemctl restart network
檢視是否修改成功
# sysctl net.ipv4.ip_forward
如果返回為“net.ipv4.ip_forward = 1 ”
則表示成功了
10 、刪除映象
先停止映象--再執行刪除操作
[root@centos7 ~]# docker rm 映象名稱/容器ID
[root@centos7 ~]# docker rm -f 映象名稱/容器ID //強制刪除映象
11 、匯出映象,生成tar包,export匯出的是讀寫層的檔案系統
[root@centos7 ~]# docker export 映象名/映象ID > XXXX.tar
舉例:
[root@centos7 ~]# docker export test01_self > test01.tar
匯出完整映象:save:匯出映象所有檔案和歷史紀錄
[root@centos7 ~]# docker save docker.io/imagine10255/centos6-lnmp-php56 > lnmp.tar
12 、匯入映象
[root@centos7 ~]# docker import test01.tar (映象包) ubuntu:self_new (新的映象名)
13 、啟動匯入的映象
[root@centos7 ~]# docker run -itd --name ubuntu_self_new ubuntu:self_new /bin/bash
打包前建立的檔案存在
匯入完整映象: load
[root@centos7 ~]# docker rmi docker.io/imagine10255/centos6-lnmp-php56 // 刪除
[root@centos7 ~]# docker load -i lnmp.tar // 重新匯入
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2285839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker從入門到精通(六)——容器通訊Docker
- Docker從入門到精通(七)——容器資料共享Docker
- Docker容器使用 (入門到精通)Docker
- Docker 從入門到掉坑Docker
- Docker 入門:容器Docker
- Docker從入門到精通(八)——Docker ComposeDocker
- Docker從入門到實戰pdfDocker
- Docker從入門到精通(五)——DockerfileDocker
- Docker實戰-從入門到跑路Docker
- Docker從入門到動手實踐Docker
- Docker從入門到精通(一)——初識Docker
- Docker 從入門到精通(一)基本操作Docker
- Docker 從入門到實踐-1-Docker簡介Docker
- springCloud+docker從入門到高階SpringGCCloudDocker
- Docker 實戰教程之從入門到提高 (五)Docker
- Docker 實戰教程之從入門到提高 (六)Docker
- Docker 實戰教程之從入門到提高 (七)Docker
- Docker 實戰教程之從入門到提高(二)Docker
- Docker 實戰教程之從入門到提高(三)Docker
- Docker 實戰教程之從入門到提高 (四)Docker
- Docker 實戰教程之從入門到提高 (八)Docker
- 手摸手帶你 Docker 從入門到實踐Docker
- Docker 從入門到精通(三)一 網路配置Docker
- Docker從入門到精通(四)——常用命令Docker
- Docker 實戰教程之從入門到提高(一)Docker
- Docker 從入門到精通(二) 搭建本地倉庫Docker
- Docker 從入門到實踐-3-安裝Docker
- Docker從入門到放棄(1) Docker簡介與安裝Docker
- scala 從入門到入門+
- makefile從入門到入門
- Identity Server 4 從入門到落地(十一)—— Docker部署IDEServerDocker
- Docker從入門到精通(三)——概念與執行流程Docker
- Docker 從入門到實踐-2-基本概念Docker
- 【docker】Docker入門到實踐 筆記Docker筆記
- 容器技術之Docker基礎入門Docker
- kafka從入門到關門Kafka
- Docker 入門系列二:容器的資料卷Docker
- 自動化整合:Docker容器入門簡介Docker