第三章Docker基本使用
本章重點:學習第一個docker容器,宿主機如何與Docker進行互動。本人習慣安裝在centos的linux系統中,所以之後將主要以centos的linux伺服器來介紹。
在介紹中會用到docker的一些命令,官方列出了docker的完整的命令列表。使用docker help
或者man docker-run
檢視。
一、檢視docker是否就緒
1、docker info
檢視docker程式是否正常工作,若未啟動可以使用start docker
啟動守護程式
2、也可以通過docker version
來檢視或者status docker
來檢視狀態
二、執行第一個容器
1、建立容器的命令是docker run 命令,docker run 命令提供了Docker容器的建立到啟動的功能。docker run -i -t ubuntu /bin/bash
意思是基於基礎映象ubuntu,-i標誌保證容器中的STDIN(標準輸入流)是開啟的,持久的標準輸入是互動式shell的“半邊天”,-t標誌則是另外“半邊天”,他告訴docker為要建立的容器分配一個偽tty終端。這樣,新建立的容器才能提供一個互動式shell。若要在命令列下建立一個我們能與之互動的容器,而不是一個執行後臺服務的容器,這兩個就是基本的引數。
2、首先docker會去本地檢查是否存在ubuntu映象,如果本地沒有映象的話,那麼docker會連線官方維護的docker Hub Register,檢視Docker Hub 中是否存在該映象,docker一旦找到該映象,就會下載並將其儲存到本地宿主機中。
也可以使用docker pull 映象名
拉取預設映象倉庫中的docker映象,也可以刪除映象docker rmi 映象名
拉取或者刪除之後可以使用docker images
來檢視當前的映象。 當前刪除映象之前需要先把基於此映象建立的所有容器先刪除掉,否則無法刪除掉映象的。刪除容器是docker rm 映象id
。
3、隨後Docker在檔案系統內部用這個映象建立了一個新容器。該容器擁有自己的網路、ip地址以及一個使用者和宿主機進行通訊的橋接網路介面。
4、最後我們告訴Docker在新容器中要執行什麼命令,本例中執行/bin/bash命令啟動了一個Bash shell。
當容器建立完畢之後,Docker就會執行容器中的/bin/bash命令,這是就會看到容器內的shell了。見下圖1就是拉取了ubutun的映象並以此為基礎映象建立了一個新的容器。
三、使用第一個容器
按上述步驟已經生成並進入了容器的終端,下面對這個容器進行簡單的操作。
1、檢視該容器的主機名:hostname
可知道該容器的主機名就是容器的id
2、檢視容器內的hosts檔案cat /etc/hosts
容器是有自己的ip地址以及網路的
3、可以檢視容器內的程式,目前ps aux
目前沒有其他的啟動的程式,可見和宿主機是獨立分開的。
4、在第一個容器中進行安裝軟體包
apt-get update && apt-get install vim
可以在容器內下載並安裝軟體5、退出容器命令
exit
就可以退出到centOS的宿主機的命令列提示符了。退出之後這個容器就停止執行了。主要是取決於我們的啟動的方式是隻有在指定的/bin/bash命令處於執行狀態的時候,我們的容器才會處於執行狀態。容器仍存在只是不是處於啟動狀態而已,可使用docker ps -a
檢視目前所有的容器,-a表示所有無論啟動還是停止docker ps
指的是列出處於啟動執行狀態下的容器6、容器的命名
若不指定容器的名稱,docker會為我們隨機的生成一個容器的名稱。想為容器指定一個名稱可以在啟動容器時候指定使用
--name
來命名一個容器的名稱。如之前啟動命令修改下 docker run --name myfirstcontainer -i -t ubuntun /bin/bash
如下圖就是我們基於基礎映象ubuntu建立的兩個容器,一個容器名是隨機生成的,一個是通過引數--name來指定的。7、容器的啟動
docker start
後面加容器名或者容器ID即可將處於停止狀態的容器再次啟動或者使用
docker restart
加容器名/容器id也可以重新啟動。容器重新啟動沿用的還是docker run
命令時指定的引數來執行。附著到正在執行的容器:
docker attach
加容器id或者容器名8、上面會發現建立的容器進入容器後在退出就會停止執行,針對此類問題來建立守護式容器。適合執行應用程式和服務。
docker run --name daemoncontainer -d ubuntu /bin/sh -c "while true ; do echo hello world ;sleep 1; done"
監測容器執行可通過日誌進行分析檢視
1、獲取守護式容器的日誌docker logs daemoncontainer或者docker logs -f daemoncontainer或者實時docker logs -ft daemoncontainer檢視
2、docker的日誌驅動docker run --log -driver="sysylog" --name daemoncontainerlog -d ubuntu /bin/sh -c "while true ; do echo hello world ;sleep 1; done"此命令會將該容器的日誌輸出到Syslog導致docker log不會輸出任何內容的。
3、檢視容器內的程式使用top命令docker top 加容器名/容器id如下圖1
4、容器內的統計資訊
docker stats +容器id或者容器名
5、在容器中執行後臺任務
docker exec -d daemoncontainer touch /etc/newfile
通過docker exec 後臺命令,可以在正在執行的容器中進行維護監控以及管理任務。
6、在容器中執行互動命令
docker exec -i -t daemoncontainer /bin/bash
7、停止守護式容器
docker stop 容器名/容器id
8、自動重啟容器
在建立容器的時候加引數
docker run --restart=always --name daemoncontainerrestart -d ubuntu /bin/sh -c "while true ; do echo hello world ;sleep 1; done"
9、深入容器
docker inspect檢視更多的容器資訊。
![圖片.png](https://upload-images.jianshu.io/upload_images/5411450-f864604e8108c6ef.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
10、刪除容器
docker rm 容器名/容器id
刪除所有容器
docker rm `docker ps -a -q`
相關文章
- Docker基本使用Docker
- Docker原理和基本使用Docker
- Docker基本介紹及使用Docker
- docker的基本使用方法Docker
- 整理記錄 docker 基本操作使用Docker
- 關於docker-Compose基本使用Docker
- Docker的基本使用及DockerFile的編寫Docker
- 初次學習 Docker Volume 的基本使用 (四)Docker
- Docker基本操作Docker
- Docker基本管理Docker
- docker 1.2 之docker基本用法Docker
- Docker掃盲之容器與映象的基本使用Docker
- CentOS 7 使用 docker 搭建基本的 lnmp 環境CentOSDockerLNMP
- Docker 容器基本操作[Docker 系列-2]Docker
- docker 基本介紹Docker
- docker 基本命令Docker
- docker基本命令Docker
- Docker的基本操作Docker
- 《HBase 不睡覺》第三章 – HBase 基本操作
- 《HBase 不睡覺》第三章 - HBase 基本操作
- docker基本底層原理Docker
- Docker映象的基本操作Docker
- Docker的基本概念Docker
- Docker 快速入門系列-Docker 的基本組成Docker
- Docker基本操作基於WindowsDockerWindows
- Docker基本概念詳解Docker
- Docker基礎與基本概念Docker
- Docker Swarm從部署到基本操作DockerSwarm
- docker 基本安裝配置操作(複習)Docker
- docker 映象和容器的基本命令Docker
- 一文了解Docker基本概念Docker
- Docker學習—概念及基本應用Docker
- 筆記docker的基本啟動映象筆記Docker
- 8 個基本的 Docker 容器管理命令Docker
- 【Docker】使用docker部署 mysqlDockerMySql
- docker使用Docker
- git基本使用Git
- Thymeleaf基本使用