docker

1.docker簡(jiǎn)介:

Docker基于 Google 公司推出的 Go 語(yǔ)言實(shí)現(xiàn)。 項(xiàng)目后來(lái)加入了 Linux 基金會(huì),遵從了 Apache 2.0 協(xié)議,項(xiàng)目代碼在?GitHub?上進(jìn)行維護(hù)。

Docker 自開源后受到廣泛的關(guān)注和討論,以至于 dotCloud 公司后來(lái)都改名為 Docker Inc。Redhat 已經(jīng)在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 產(chǎn)品中廣泛應(yīng)用。

Docker 項(xiàng)目的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案。 Docker 的基礎(chǔ)是 Linux 容器(LXC)等技術(shù)。

? 在 LXC 的基礎(chǔ)上 Docker 進(jìn)行了進(jìn)一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡(jiǎn)便。用戶操作 Docker 的容器就像操作一個(gè)快速輕量級(jí)的虛擬機(jī)一樣簡(jiǎn)單。

2.docker命令:

啟動(dòng)docker? ?systemctl start docker

停止docker??systemctl stop docker

重啟docker??systemctl restart docker

查看docker狀態(tài)??systemctl status docker

開機(jī)啟動(dòng)? ?systemctl enable docker

查看docker幫助文檔? docker --help

3.鏡像相關(guān)命令:

REPOSITORY:鏡像名稱? ? ? ? ? TAG:鏡像標(biāo)簽? ? ? ? ? ? ? ? ? ? ?IMAGE ID:鏡像ID

CREATED:鏡像的創(chuàng)建日期(不是獲取該鏡像的日期)? ? ? ? ?SIZE:鏡像大小

這些鏡像都是存儲(chǔ)在Docker宿主機(jī)(現(xiàn)在宿主機(jī)為本機(jī))的/var/lib/docker目錄下

查看鏡像? ? ?docker images

查找鏡像? ? ? docker search? 鏡像名稱

NAME:倉(cāng)庫(kù)名稱? ? ? ? ? ? ? ?DESCRIPTION:鏡像描述

STARS:用戶評(píng)價(jià),反應(yīng)一個(gè)鏡像的受歡迎程度? ? ? ? ?OFFICIAL:是否官方

AUTOMATED:自動(dòng)構(gòu)建,表示該鏡像由Docker Hub自動(dòng)構(gòu)建流程創(chuàng)建的

拉取鏡像? ??docker pull 鏡像名稱

拉取鏡像就是從中央倉(cāng)庫(kù)中下載鏡像到本地??

例如下載centos7鏡像執(zhí)行語(yǔ)句:? ? docker pull centos:7

刪除鏡像? docker? rmi? 鏡像ID

刪除所有鏡像? ??docker? rmi? `docker images -q`

4.容器命令:

查看正在運(yùn)行的容器:? ? docker ps

查看所有容器:? ? docker ps –a

查看最后一次運(yùn)行的容器:? ?docker ps –l

查看停止的容器:? ??docker ps -f status=exited

5.創(chuàng)建與使用容器

創(chuàng)建容器命令:? docker run

-i:表示運(yùn)行容器?

-t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行。加入這兩個(gè)參數(shù)后,容器創(chuàng)建就能登錄進(jìn)去。即分配一個(gè)偽終端

--name :為創(chuàng)建的容器命名

-v:表示目錄映射關(guān)系(前者是宿主機(jī)目錄,后者是映射到宿主機(jī)上的目錄),可以使用多個(gè)-v做多個(gè)目錄或文件映射。注意:最好做目錄映射,在宿主機(jī)上做修改,然后共享到容器上

-d:在run后面加上-d參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行(這樣創(chuàng)建容器后不會(huì)自動(dòng)登錄容器,如果只加-i -t兩個(gè)參數(shù),創(chuàng)建后就會(huì)自動(dòng)進(jìn)去容器)。

-p:表示端口映射,前者是宿主機(jī)端口,后者是容器內(nèi)的映射端口??梢允褂枚鄠€(gè)-p做多個(gè)端口映射

交互方式創(chuàng)建容器:? ?docker run -it? --name=容器名稱? 鏡像名稱:標(biāo)簽?

守護(hù)方式創(chuàng)建容器:? docker? run -di? --name=容器名稱? 鏡像名稱:標(biāo)簽

退出當(dāng)前容器:? exit

登錄守護(hù)式容器方式:? ?docker exec? -it? 容器名稱 (或者容器ID)?

6.停止與啟動(dòng)容器

停止容器? ?docker stop 容器名稱(或者容器ID)

啟動(dòng)容器? ?docker start 容器名稱(或者容器ID)

7.文件拷貝

將文件拷貝到容器中:? ?docker? cp??需要拷貝的文件或目錄? 容器名稱:容器目錄

將文件從容器中拷貝出:? ?docker cp? 容器名稱:容器目錄? 需要拷貝的文件或目錄

8.查看容器IP地址

查看容器運(yùn)行的各種數(shù)據(jù):? docker inspect? 容器名稱(容器ID)

執(zhí)行下面命令直接輸出IP地址:??

docker? inspect? --format='{{.NetworkSettings.IPAddress}}'? ?容器名稱(容器ID)

9.刪除容器

刪除指定容器??docker rm 容器名稱(容器ID)

MySQL部署:

1. 拉取mysql鏡像? ? ? docker pull centos/mysql-57-centos7

2. 創(chuàng)建mysql容器? ? ?docker? run -di? --name=mymysql? -p 3306:3306? -e

MYSQL_ROOT_PASSWORD=123456? centos/mysql-57-centos7

(? 其中-p 代表端口映射? ? ? 格式:? 宿主機(jī)映射端口:容器運(yùn)行端口 )

(? -e? 代表添加環(huán)境變量? ? ?MYSQL_ROOT_PASSWORD 是root用戶的登陸密碼 )

最后遠(yuǎn)程登錄mysql? 連接宿主機(jī)的IP,指定端口為3306

tomcat部署:

1. 拉取tomcat鏡像? ? ? docker pull tomcat:7-jre7

2.創(chuàng)建tomcat容器? ? ? ?docker? run? -di? --name=mytomcat? -p? 9000:8080? -v /usr/local/webapps:/usr/local/tomcat/webapps? ?tomcat:7-jre7

Nginx部署:

1.拉取鏡像? ?docker pull nginx

2.創(chuàng)建nginx容器? ?docker run -di --name=mynginx -p 80:80 nginx

Redis部署:

1.拉取鏡像? docker pull redis

2.創(chuàng)建容器? ? docker run -di --name=myredis -p 6379:6379 redis?

遷移與備份:

將容器保存為鏡像:? ?docker commit mynginx mynginx_i

將鏡像保存為tar:? ?docker save -o mynginx.tar mynginx_i

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容