久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

docker安裝基本使用

 蘇魚魚的IT運(yùn)維 2019-03-06

1. 安裝

yum install -y yum-utils device-mapper-persistent-data lvm2 epel-release

yum-config-manager --add-repo https://download./linux/centos/docker-ce.repo

# 查看可安裝的docker版本

yum list docker-ce --showduplicates | sort -r

yum install docker-ce

systemctl start docker

docker version

2. 配置鏡像加速源

文件沒(méi)有就新建一個(gè)即可

[root@configman docker]# cat /etc/docker/daemon.json

{

"registry-mirrors": ["https://pee6w651.mirror."]

}

3. 常用命令

查看鏡像

docker images

查找鏡像

[root@configman ~]# docker search redis

獲取鏡像

docker pull nginx

docker pull tomcat

查看運(yùn)行的鏡像

docker ps -a

Docker 允許你在容器內(nèi)運(yùn)行應(yīng)用程序, 使用 docker run 命令來(lái)在容器內(nèi)運(yùn)行一個(gè)應(yīng)用程序

docker run centos:6.9 /bin/echo "Hello world"

我們通過(guò)docker的兩個(gè)參數(shù) -i -t,,讓docker運(yùn)行的容器實(shí)現(xiàn)"對(duì)話"的能力

docker run -i -t centos:6.9 /bin/bash

使用以下命令創(chuàng)建一個(gè)以進(jìn)程方式運(yùn)行的容器

[root@configman docker]# docker run -d centos:6.9 /bin/sh -c "while true; do echo hello world; sleep 1; done"

在輸出中,我們沒(méi)有看到期望的"hello world",,而是一串長(zhǎng)字符

3cb262ebb07842a3b3801b145a12c9fb8d967115a7ff037b3f90ba13e9ad6e6d

這個(gè)長(zhǎng)字符串叫做容器ID,對(duì)每個(gè)容器來(lái)說(shuō)都是唯一的,,我們可以通過(guò)容器ID來(lái)查看對(duì)應(yīng)的容器發(fā)生了什么,。

首先,我們需要確認(rèn)容器有在運(yùn)行,可以通過(guò) docker ps 來(lái)查看

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

3cb262ebb078 centos:6.9 "/bin/sh -c 'while t…" 11 minutes ago Up 11 minutes optimistic_bardeen

930bd1904df8 centos:6.9 "/bin/bash" 19 minutes ago Exited (1) 18 minutes ago boring_elion

7c5ea0159ed9 nginx "nginx -g 'daemon of…" 25 minutes ago Exited (0) 23 minutes ago adoring_euclid

f1e2f087addc hello-world "/hello" 26 minutes ago Exited (0) 26 minutes ago adoring_chatterjee

查看日志

docker logs 3cb262ebb078

docker logs optimistic_bardeen

啟停止容器

docker start/stop 3cb262ebb078

docker start/stop optimistic_bardeen

刪除容器

docker rm 3cb262ebb078

docker rm optimistic_bardeen

4. 客戶端使用

docker 客戶端非常簡(jiǎn)單 ,我們可以直接輸入 docker 命令來(lái)查看到 Docker 客戶端的所有命令選項(xiàng),。

運(yùn)行一個(gè)web應(yīng)用

前面我們運(yùn)行的容器并沒(méi)有一些什么特別的用處,。

接下來(lái)讓我們嘗試使用 docker 構(gòu)建一個(gè) web 應(yīng)用程序。

我們將在docker容器中運(yùn)行一個(gè) Python Flask 應(yīng)用來(lái)運(yùn)行一個(gè)web應(yīng)用,。

docker pull training/webapp # 載入鏡像 docker run -d -P training/webapp python app.py

  • -d:讓容器在后臺(tái)運(yùn)行,。

  • -P:將容器內(nèi)部使用的網(wǎng)絡(luò)端口映射到我們使用的主機(jī)上。

[root@configman ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

794fa8091343 training/webapp "python app.py" 9 minutes ago Up 9 minutes 0.0.0.0:32768->5000/tcp clever_ritchie

通過(guò)IP:32768 即可訪問(wèn)

我們也可以通過(guò) -p 參數(shù)來(lái)設(shè)置不一樣的端口:

runoob@runoob:~$ docker run -d -p 5000:5000 training/webapp python app.py

[root@configman ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

9904e9afd6c9 training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp xenodochial_ptolemy

794fa8091343 training/webapp "python app.py" 16 minutes ago Up 16 minutes 0.0.0.0:32768->5000/tcp clever_ritchie

網(wǎng)絡(luò)端口的快捷方式

通過(guò) docker ps 命令可以查看到容器的端口映射,,docker 還提供了另一個(gè)快捷方式 docker port,,使用 docker port 可以查看指定 (ID 或者名字)容器的某個(gè)確定端口映射到宿主機(jī)的端口號(hào)。

docker port 9904e9afd6c9

5000/tcp -> 0.0.0.0:5000

查看 WEB 應(yīng)用程序日志

docker logs [ID或者名字] 可以查看容器內(nèi)部的標(biāo)準(zhǔn)輸出,。

runoob@runoob:~$ docker logs -f 9904e9afd6c9

-f:docker logs 像使用 tail -f 一樣來(lái)輸出容器內(nèi)部的標(biāo)準(zhǔn)輸出。

從上面,,我們可以看到應(yīng)用程序使用的是 5000 端口并且能夠查看到應(yīng)用程序的訪問(wèn)日志,。

查看WEB應(yīng)用程序容器的進(jìn)程

我們還可以使用 docker top 來(lái)查看容器內(nèi)部運(yùn)行的進(jìn)程

[root@configman ~]# docker top 9904e9afd6c9

UID PID PPID C STIME TTY TIME CMD

root 62983 62966 0 16:37 ? 00:00:00 python app.py

檢查 WEB 應(yīng)用程序

使用 docker inspect 來(lái)查看 Docker 的底層信息。它會(huì)返回一個(gè) JSON 文件記錄著 Docker 容器的配置和狀態(tài)信息,。

[root@configman ~]# docker inspect 9904e9afd6c9

[

{

"Id": "9904e9afd6c907d46ea07f95bc49dd77fd3c848b5fd0c9c7a023498d5a52a5a6",

"Created": "2019-03-04T08:37:21.597591699Z",

"Path": "python",

"Args": [

"app.py"

],

"State": {

"Status": "running",

"Running": true,

"Paused": false,

"Restarting": false,

"OOMKilled": false,

..........................................................................................................................

下載完成后,,我們就可以使用這個(gè)鏡像了。

runoob@runoob:~$ docker run -d httpd

創(chuàng)建鏡像

當(dāng)我們從docker鏡像倉(cāng)庫(kù)中下載的鏡像不能滿足我們的需求時(shí),,我們可以通過(guò)以下兩種方式對(duì)鏡像進(jìn)行更改,。

  • 1.從已經(jīng)創(chuàng)建的容器中更新鏡像,并且提交這個(gè)鏡像

  • 2.使用 Dockerfile 指令來(lái)創(chuàng)建一個(gè)新的鏡像

更新鏡像

更新鏡像之前,,我們需要使用鏡像來(lái)創(chuàng)建一個(gè)容器,。

docker run -t -i centos:6.9 /bin/bashroot@fdd312d511f9:/#

在運(yùn)行的容器內(nèi)使用yum update 命令進(jìn)行更新。

在完成操作之后,,輸入 exit命令來(lái)退出這個(gè)容器,。

此時(shí)ID為fdd312d511f9的容器,是按我們的需求更改的容器,。我們可以通過(guò)命令 docker commit來(lái)提交容器副本,。

docker commit -m="has update" -a="suwei" fdd312d511f9 suwei/centos6.9:v2

各個(gè)參數(shù)說(shuō)明:

  • -m:提交的描述信息

  • -a:指定鏡像作者

  • fdd312d511f9容器ID

  • suwei/centos6.9:v2:指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名

[root@configman ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

suwei/centos6.9 v2 368582acb23a 5 seconds ago 440MB

nginx latest 8c9ca4d17702 5 days ago 109MB

httpd latest d3a13ec4a0f1 2 weeks ago 132MB

運(yùn)行新的鏡像

docker run -t -i suwei/centos6.9:v2 /bin/bash

構(gòu)建鏡像

我們使用命令 docker build , 從零開始來(lái)創(chuàng)建一個(gè)新的鏡像,。為此,,我們需要?jiǎng)?chuàng)建一個(gè) Dockerfile 文件,其中包含一組指令來(lái)告訴 Docker 如何構(gòu)建我們的鏡像,。

[root@configman ~]# cat Dockerfile

FROM centos:6.7

MAINTAINER Fisher "[email protected]"

RUN /bin/echo 'root:111111' |chpasswd

RUN useradd test

RUN /bin/echo 'test:test' |chpasswd

RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local

EXPOSE 22

EXPOSE 80

CMD /usr/sbin/sshd -D

每一個(gè)指令都會(huì)在鏡像上創(chuàng)建一個(gè)新的層,,每一個(gè)指令的前綴都必須是大寫的。

第一條FROM,,指定使用哪個(gè)鏡像源

RUN 指令告訴docker 在鏡像內(nèi)執(zhí)行命令,,安裝了什么。。,。

然后,,我們使用 Dockerfile 文件,通過(guò) docker build 命令來(lái)構(gòu)建一個(gè)鏡像,。

docker build -t suwei/centos:6.7 .

參數(shù)說(shuō)明:

  • -t :指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名

  • . :Dockerfile 文件所在目錄,,可以指定Dockerfile 的絕對(duì)路徑

使用docker images 查看創(chuàng)建的鏡像已經(jīng)在列表中存在,鏡像ID為226028b77315

[root@configman ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

suwei/centos 6.7 226028b77315 43 seconds ago 191MB

suwei/centos6.9 v2 368582acb23a 32 minutes ago 440MB

我們可以使用新的鏡像來(lái)創(chuàng)建容器

Docker 容器連接

前面我們實(shí)現(xiàn)了通過(guò)網(wǎng)絡(luò)端口來(lái)訪問(wèn)運(yùn)行在 docker 容器內(nèi)的服務(wù)。下面我們來(lái)實(shí)現(xiàn)通過(guò)端口連接到一個(gè) docker 容器

我們也可以使用 -p 標(biāo)識(shí)來(lái)指定容器端口綁定到主機(jī)端口,。

兩種方式的區(qū)別是:

  • -P :是容器內(nèi)部端口隨機(jī)映射到主機(jī)的高端口,。

  • -p : 是容器內(nèi)部端口綁定到指定的主機(jī)端口。

docker run -d -p 5000:5000 training/webapp python app.py

另外,,我們可以指定容器綁定的網(wǎng)絡(luò)地址,,比如綁定 127.0.0.1。

docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py

如果要綁定 UDP 端口,,可以在端口后面加上 /udp

docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

鏡像操作

刪除

docker rmi 鏡像名稱/IMAGE ID

docker rmi 7d0d6c2cec45

導(dǎo)出

docker save -o 備份名稱.tar 鏡像名稱

例如:

[root@configman ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

my/nginx v888 7d0d6c2cec45 23 hours ago 108MB

mynginx latest 1fb19eb746fe 23 hours ago 108MB 

導(dǎo)入

docker save -o mynginx.tar mynginx

恢復(fù)就很簡(jiǎn)單了

docker load -i mynginx.tar

可以恢復(fù)到其它服務(wù)器或系統(tǒng)

有個(gè)問(wèn)題 如果遇到鏡像名稱一致的該如何制定備份鏡像呢

例如

[root@test01 ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

hehe 30821 275f450c200c 4 hours ago 265MB

test 25389 bfcdce890dcd 23 hours ago 254MB

test 26826 ec342d163e2b 25 hours ago 254MB

test 14879 228f6e432d8c 28 hours ago 254MB

兩種方式

docker save -o test.tar test:25389

或者

docker save -o test.tar bfcdce890dcd

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多