首页 >> 手游攻略

idbd-446

大家好,今天给各位分享idbd-446的一些知识,其中也会对docker基础进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

1.概述

(1)docker官网:https://www.docker.com/

仓库地址https://hub.docker.com/

2.安装docker

(1)检查是否有已经安装docker,安装yum工具

[root@localhost~]#rpm-qa|grepdocker

[root@localhost~]#yuminstall-yyum-utils

设置镜像仓库

[root@localhost~]#yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引

yummakecachefast

安装docker

yuminstalldocker-cedocker-ce-clicontainerd.io

启动docker

systemctlstartdocker

查看版本

dockerversion

(2)启动一个容器

[root@localhostyum.repos.d]#dockerrunhello-world

Unabletofindimage'hello-world:latest'locally

latest:Pullingfromlibrary/hello-world

2db29710123e:Pullcomplete

Digest:sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685

Status:Downloadednewerimageforhello-world:latest

HellofromDocker!

Thismessageshowsthatyourinstallationappearstobeworkingcorrectly.

(3)查看下载的镜像

[root@localhostyum.repos.d]#dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

hello-worldlatestfeb5d9fea6a52monthsago13.3kB

2.镜像加速

[root@localhostdocker]#sudotee/etc/docker/daemon.json<<-'EOF'

>{

>"registry-mirrors":["https://4q9hlak8.mirror.aliyuncs.com"]

>}

>EOF

[root@localhostdocker]#systemctldaemon-reload

[root@localhostdocker]#systemctlrestartdocker

3.docker常用命令

a.查看镜像

[root@localhost~]#dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

hello-worldlatestfeb5d9fea6a52monthsago13.3kB

搜索镜像

[root@localhost~]#dockersearchredis

NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED

redisRedisisanopensourcekey-valuestorethat…10277[OK]

sameersbn/redis83[OK]

grokzen/redis-clusterRediscluster3.0,3.2,4.0,5.0,6.0,6.280

rediscommander/redis-commanderAlpineimageforredis-commander-Redisman…71[OK]

拉取最新版本镜像

[root@localhost~]#dockerpullmysql

拉取指定版本镜像

[root@localhost~]#dockerpullmysql:5.7

删除镜像

[root@localhost~]#dockerrmi-fcentos

交互式进入容器,退出容器容器就关闭了

[root@localhost~]#dockerrun-itcentos

[root@43670455796f/]#

查看启动的容器

[root@localhost~]#dockerps

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

a18a8feedaf3centos"/bin/bash"6secondsagoUp4secondsreverent_kare

查看所有容器,正在启动的和已经停止的

[root@localhost~]#dockerps-a

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

a18a8feedaf3centos"/bin/bash"AboutaminuteagoUpAboutaminutereverent_kare

43670455796fcentos"/bin/bash"2minutesagoExited(0)2minutesagoyouthful_golick

52c44c3034c5centos"/bin/bash"3minutesagoExited(0)3minutesagopeaceful_kapitsa

922c02bc7641centos"/bin/bash"3minutesagoExited(0)3minutesagozealous_almeida

224b540aaa7emysql"docker-entrypoint.s…"5minutesagoExited(1)5minutesagofocused_cray

4a1b9abf49cdhello-world"/hello"AboutanhouragoExited(0)Aboutanhouragoheuristic_shamir

查看所有容器的编号

[root@localhost~]#dockerps-aq

a18a8feedaf3

43670455796f

52c44c3034c5

922c02bc7641

224b540aaa7e

4a1b9abf49cd

删除容器,只能删除未启动的容器

[root@localhost~]#dockerrm52c44c3034c5

52c44c3034c5

启动停止的容器

[root@localhost~]#dockerstart43670455796f

43670455796f

启动centos的一个容器

[root@localhost~]#dockerrun-dcentos/bin/bash

81816f5d03cfb88dac21efc220f0a1ce29fccc43d6b2a06896903daa0bac7f31

查看没有正在运行的容器

[root@localhost~]#dockerps

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

启动容器后,执行一个运行的命令,才能使容器正常运行

[root@localhost~]#dockerrun-dcentos/bin/bash-c"whiletrue;doechokuangshen;sleep1;done"

5fcb0b52b14cbf3305c0c7ccdb3374f20739a4a2d484064d92a37ed2d77a95d9

[root@localhost~]#

查看容器中进程信息

[root@localhost~]#dockertop5fcb0b52b14c

查看镜像的元数据

[root@localhost~]#dockerinspect5fcb0b52b14c

进入容器

[root@localhost~]#dockerexec-it5fcb0b52b14c/bin/bash

[root@5fcb0b52b14c/]#

从容器拷贝文件到宿主机

[root@localhost~]#dockercp5fcb0b52b14c:/test.txt/root/

通过当前容器生成一个镜像

[root@localhost~]#dockercommit-m="wodejingixang"-a='zss'5fcb0b52b14ccentos:zss11

sha256:3694e132e30f118a410f46b3163234c2d7b5d87c1a3d083cc1772a6ee3bf8b89

4.数据卷

(1)通过命令直接挂载,主机数据和容器数据互相同步

[root@localhost~]#dockerrun-it-v/home/ceshi:/homecentos/bin/bash

[if!supportLists](2)[endif]启动一个mysql容器

[root@localhost~]#dockerrun-d-p3310:3306-v/home/mysql/conf:/etc/mysql/conf.d-v/home/mysql/data/:/bar/lib/mysql-eMYSQL_ROOT_PASSWORD=123456--namemysql01mysql:5.7

6a3fa55aa813af0d12f351d68e947a467033df258c768884912730726256be5f

(3)匿名挂载,只指定容器的目录

[root@localhost~]#dockerrun-d-P--namenginx01-v/etc/nginxnginx

[root@localhost~]#dockervolumels

DRIVERVOLUMENAME

local7941953ceadc743eaa237b990d46ae56e2a14aceaa15b5d477c2010f1864ccf5

locald5ca6059960b989fa290db3e51119e1caf876991390dff6b34f9457958224e57

locale947d3c189dd8236845233c3b42786298f82490327c2b2df39a7e0993d47d2aa

localf29dc23e945fd06d50860642a7dfaf89f94a67763fe861b469ecda9b7f9c0f58

[if!supportLists](3)[endif]具名挂载,给容器内挂在的卷一个名字

[root@localhost_data]#dockerrun-d-P--namenginx02-vjuming-nginx:/etc/nginxnginx

5e711594038da1350611573fc809d92fbc55b170b432e99d9e7a7ab3276dced5

[root@localhost_data]#dockervolumels

DRIVERVOLUMENAME

local7941953ceadc743eaa237b990d46ae56e2a14aceaa15b5d477c2010f1864ccf5

locald5ca6059960b989fa290db3e51119e1caf876991390dff6b34f9457958224e57

locale947d3c189dd8236845233c3b42786298f82490327c2b2df39a7e0993d47d2aa

localf29dc23e945fd06d50860642a7dfaf89f94a67763fe861b469ecda9b7f9c0f58

localjuming-nginx

(4)设置容器内目录,在容器内只读,只能在宿主机内可以读写

[root@localhost/]#dockerrun-d-P--namenginx03-vjuming-nginx03:/etc/nginx:ronginx

4362e22a069e21cb262f1a40b97b16d196d98c9afc48bbef1783bb67a83f334d

5.dockerfile

(1)创建一个镜像

a.创建dockerfile文件

[root@localhostdocker]#catdockerfile

FROMcentos

VOLUME["volume01","volume02"]

CMDecho"----end---"

CMD/bin/bash

b.创建镜像

[root@localhostdocker]#dockerbuild-f/docker/dockerfile-tkuangshen/centos:1.0.

SendingbuildcontexttoDockerdaemon2.048kB

Step1/4:FROMcentos

--->5d0da3dc9764

Step2/4:VOLUME["volume01","volume02"]

--->Runningin112f3903cfc0

Removingintermediatecontainer112f3903cfc0

--->6eef3fbff990

Step3/4:CMDecho"----end---"

--->Runningindb09822d0987

Removingintermediatecontainerdb09822d0987

--->b8f7c584c041

Step4/4:CMD/bin/bash

--->Runningin127aedae2c89

Removingintermediatecontainer127aedae2c89

--->785db3faa532

Successfullybuilt785db3faa532

Successfullytaggedkuangshen/centos:1.0

c.查看镜像

[root@localhost~]#dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

kuangshen/centos1.0785db3faa5325minutesago231MB

centos3.0785db3faa5325minutesago231MB

centoszss113694e132e30f47minutesago231MB

tomcatlatest24207ccc9cce6daysago680MB

[if!supportLists](2)[endif]再通过dockerfile构建一个镜像

[if!supportLists]a.[endif]dockerfile如下

[root@localhostdocker]#catdockerfile1

FROMcentos

MAINTAINERkuangshen<11212.qq.com>

#ENVMYPATN/usr/local

#WORKDIR$MYPATH

RUNyum-yinstallvim

RUNyum-yinstallnet-tools

EXPOSE80

#CMDecho$MYPATH

CMDecho"--end----"

CMD/bin/bash

b.执行创建命令

[root@localhostdocker]#dockerbuild-fdockerfile1-tcentoszss5:2.0.

Step7/7:CMD/bin/bash

--->Runningin14b36d913ea3

Removingintermediatecontainer14b36d913ea3

--->c1be04b32731

Successfullybuiltc1be04b32731

Successfullytaggedcentoszss5:2.0

c.查看镜像

[root@localhostdocker]#dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

centoszss52.0c1be04b327314minutesago322MB

d.使用自己生成的镜像启动容器,已经有vim命令

[root@localhostdocker]#dockerrun-itcentoszss5:2.0

[root@5a97a37b6b22/]#vi

viviewvigrvimvimdiffvimtutorvipw

e.使用原始镜像启动容器,没有vim命令

[root@localhost~]#dockerrun-itcentos

[root@6f4a04ee0613/]#vim

bash:vim:commandnotfound

f.查看镜像变更过程

[root@localhostdocker]#dockerhistorycentoszss5:2.0

IMAGECREATEDCREATEDBYSIZECOMMENT

c1be04b327319minutesago/bin/sh-c#(nop)CMD["/bin/sh""-c""/bin…0B

9cacb36695f39minutesago/bin/sh-c#(nop)CMD["/bin/sh""-c""echo…0B

a423666676d89minutesago/bin/sh-c#(nop)EXPOSE800B

1a2ef029a9979minutesago/bin/sh-cyum-yinstallnet-tools27MB

18030e0693039minutesago/bin/sh-cyum-yinstallvim64.1MB

fc1a1ff71c1312minutesago/bin/sh-c#(nop)MAINTAINERkuangshen<1121…0B

5d0da3dc97643monthsago/bin/sh-c#(nop)CMD["/bin/bash"]0B

<missing>3monthsago/bin/sh-c#(nop)LABELorg.label-schema.sc…0B

<missing>3monthsago/bin/sh-c#(nop)ADDfile:805cb5e15fb6e0bb0…231MB

(3)生成一个tomcat镜像

a.dockerfile如下

[root@localhostdocker]#cattomcatdockerfile

FROMcentos

MAINTAINERkuangshen<11212.qq.com>

ADDjdk-8u311-linux-x64.tar.gz/usr/local/

ADDapache-tomcat-9.0.22.tar.gz/usr/local/

RUNyum-yinstallvim

ENVMYPATH/usr/local/

WORKDIR$MYPATH

ENVJAVA_HOME/usr/local/jdk1.8.0_311

ENVCLASSPATH$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENVCATALINA_HOME/usr/local/apache-tomcat-9.0.22

ENVCATALINA_BASH/usr/local/apache-tomcat-9.0.22

ENVPATH$PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

CMD/usr/local/apache-tomcat-9.0.22/bin/startup.sh

CMDtail-f/var/log/btmp

[if!supportLists]b.[endif]创建镜像

[root@localhostdocker]#dockerbuild-ftomcatdockerfile-ttomcatzss:3.0.

Removingintermediatecontaineredb56713f6ee

--->d0278c8b43e2

Successfullybuiltd0278c8b43e2

Successfullytaggedtomcatzss:3.0

c.查看镜像

[root@localhostdocker]#dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

tomcatzss3.0d0278c8b43e27secondsago676MB

d.运行容器

[root@localhostdocker]#dockerrun-it-dtomcatzss:3.0

6.数据卷容器

创建2个容器实现数据卷共享

[root@localhostdocker]#dockerrun-d-p3320:3306-v/etc/mysql/conf.d-v/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456--namemysql02mysql:5.7

0fbdab503dbdb1656275b43f001fe4968b3d02607a80360808b1f0f3587150de

[root@localhostdocker]#dockerrun-d-p3330:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql04--volumes-frommysql02mysql:5.7

fdf04c4f44a69737144fc65c116f5305233b3adbbf21ffd446a153527bd54dd1

7.镜像仓库中所有镜像版本查看

参考链接:https://www.cnblogs.com/qa-freeroad/p/14450386.html

https://www.cnblogs.com/qa-freeroad/p/13563013.html

(1)安装python3.6

yuminstallpython36-y

yuminstallpython36-devel-y

python3-V

(2)安装pip

yuminstallpython36-pip-y

pip3-V

(3)命令行查看镜像仓库中某个镜像都有哪些版本

curlhttps://registry.hub.docker.com/v1/repositories/${docker_img}/tags|python3-mjson.tool|more

8.容器内安装命令

aptupdate

aptinstall-yiproute2

aptinstalliputils-ping

9.网络相关命令

(1)link,一个容器可以ping另一个容器的name

(2)实操link

a.[root@localhost~]#dockerexec-ittomcat4pingtocmcat3

ping:tocmcat3:Nameorservicenotknown

[root@localhost~]#dockerrun-d-P--nametomcat5--linktomcat4tomcatzss:1.0

c82b18cdf4237336345956227419e0818a9cfb10a8ce2b8f92220d104df8b785

[root@localhost~]#dockerexec-ittomcat5pingtomcat4

PINGtomcat4(172.17.0.5)56(84)bytesofdata.

64bytesfromtomcat4(172.17.0.5):icmp_seq=1ttl=64time=0.505ms

b.link的本质,在hosts中增加了解析

[root@localhost~]#dockerexec-ittomcat5cat/etc/hosts

127.0.0.1localhost

::1localhostip6-localhostip6-loopback

fe00::0ip6-localnet

ff00::0ip6-mcastprefix

ff02::1ip6-allnodes

ff02::2ip6-allrouters

172.17.0.5tomcat49a356af00866

172.17.0.6c82b18cdf423

c.查看当前网络

[root@localhost~]#dockernetworkls

NETWORKIDNAMEDRIVERSCOPE

02e562a54700bridgebridgelocal

752264caac7ahosthostlocal

7fc4b2a46f7cnonenulllocal

d.创建一个自定义网络

[root@localhost~]#dockernetworkcreate--driverbridge--subnet192.168.0.0/16--gateway192.168.0.1mynet

e5e23ceec16d7aea3d3053c4a5aa992791f6d8bd3d7aa9e66b181931feabef29

[root@localhost~]#dockernetworkls

NETWORKIDNAMEDRIVERSCOPE

02e562a54700bridgebridgelocal

752264caac7ahosthostlocal

e5e23ceec16dmynetbridgelocal

7fc4b2a46f7cnonenulllocal

c.通过自定义网络创建容器

[root@localhost~]#dockerrun-d-P--nametomcat--mynet--netmynettomcatzss:1.0

2bb33a4f838f8819cfac3e5dd2a1f52dd119a143d4bbbbeb05e23b815822eed4

[root@localhost~]#dockerrun-d-P--nametomcat--mynet1--netmynettomcatzss:1.0

e6dfeb9e95af43dd17a55af3d550ab88a05de08b66b52bf687da206901cdc8ba

[root@localhost~]#dockerexec-ite6dfeb9e95afpingtomcat--mynet

PINGtomcat--mynet(192.168.0.2)56(84)bytesofdata.

64bytesfromtomcat--mynet.mynet(192.168.0.2):icmp_seq=1ttl=64time=0.275ms

d.网络联通(将A网络的容器加入到B网络)

[root@localhost~]#dockernetworkconnectmynettomcat01

10.redis集群部署实战

a.写一个脚本,准备6个docker挂载的目录

[root@localhostdocker]#catredis.sh

#/bin/bash

forportin$(seq16)

do

mkdir-p/mydata/redis/node-${port}/conf

touch/mydata/redis/node-${port}/conf/redis.conf

cat>/mydata/redis/node-${port}/conf/redis.conf<<EOF

port6379

bind0.0.0.0

cluster-enabledyes

cluster-config-filenodes.conf

cluster-node-timeout5000

cluster-announce-ip172.38.0.1${port}

cluster-announce-port6379

appendonlyyes

EOF

done

b.准备容器创建脚本

[root@localhostdocker]#catredis-rongqi.sh

#/bin/bash

forportin$(seq16)

do

dockerrun-p637${port}-p1637${port}:16379--nameredis-${port}-v/mydata/redis/node-${port}/data:/data-v/mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf-d--netredis--ip172.38.0.1${port}redis:5.0.9-alpine3.11redis-server/etc/redis/redis.conf

done

c.进入redis容器,创建集群

/data#redis-cli--clustercreate172.38.0.11:6379172.38.0.12:6379172.38.0.13:6379172.38.0.14:6379172.38

.0.15:6379172.38.0.16:6379--cluster-replicas1

>>>Performinghashslotsallocationon6nodes...

Master[0]->Slots0-5460

Master[1]->Slots5461-10922

Master[2]->Slots10923-16383

Addingreplica172.38.0.15:6379to172.38.0.11:6379

Addingreplica172.38.0.16:6379to172.38.0.12:6379

Addingreplica172.38.0.14:6379to172.38.0.13:6379

M:9d7456de5d339019f61a871f117fa527f6d7ddd2172.38.0.11:6379

slots:[0-5460](5461slots)master

M:1902a1a872a462847e80152b8a28df57f92108a3172.38.0.12:6379

slots:[5461-10922](5462slots)master

M:48fbf97aaa206f7e6c71a10918891ea8be96cf35172.38.0.13:6379

slots:[10923-16383](5461slots)master

S:f5fc035a60177085dd6d878811f0ec71557321bd172.38.0.14:6379

replicates48fbf97aaa206f7e6c71a10918891ea8be96cf35

S:b1523ddce48fdbdc93299f9b626032805f748cb5172.38.0.15:6379

replicates9d7456de5d339019f61a871f117fa527f6d7ddd2

S:e04a1d1a2219d0cac0f21abb2db7a05bd9457117172.38.0.16:6379

replicates1902a1a872a462847e80152b8a28df57f92108a3

CanIsettheaboveconfiguration?(type'yes'toaccept):yes

>>>Nodesconfigurationupdated

>>>Assignadifferentconfigepochtoeachnode

>>>SendingCLUSTERMEETmessagestojointhecluster

Waitingfortheclustertojoin

....

>>>PerformingClusterCheck(usingnode172.38.0.11:6379)

M:9d7456de5d339019f61a871f117fa527f6d7ddd2172.38.0.11:6379

slots:[0-5460](5461slots)master

1additionalreplica(s)

S:e04a1d1a2219d0cac0f21abb2db7a05bd9457117172.38.0.16:6379

slots:(0slots)slave

replicates1902a1a872a462847e80152b8a28df57f92108a3

S:b1523ddce48fdbdc93299f9b626032805f748cb5172.38.0.15:6379

slots:(0slots)slave

replicates9d7456de5d339019f61a871f117fa527f6d7ddd2

S:f5fc035a60177085dd6d878811f0ec71557321bd172.38.0.14:6379

slots:(0slots)slave

replicates48fbf97aaa206f7e6c71a10918891ea8be96cf35

M:48fbf97aaa206f7e6c71a10918891ea8be96cf35172.38.0.13:6379

slots:[10923-16383](5461slots)master

1additionalreplica(s)

M:1902a1a872a462847e80152b8a28df57f92108a3172.38.0.12:6379

slots:[5461-10922](5462slots)master

1additionalreplica(s)

[OK]Allnodesagreeaboutslotsconfiguration.

>>>Checkforopenslots...

>>>Checkslotscoverage...

[OK]All16384slotscovered.

d.查看集群信息

127.0.0.1:6379>CLUSTERinfo

cluster_state:ok

cluster_slots_assigned:16384

cluster_slots_ok:16384

cluster_slots_pfail:0

cluster_slots_fail:0

cluster_known_nodes:6

cluster_size:3

cluster_current_epoch:6

cluster_my_epoch:2

cluster_stats_messages_ping_sent:195

cluster_stats_messages_pong_sent:203

cluster_stats_messages_meet_sent:4

cluster_stats_messages_sent:402

cluster_stats_messages_ping_received:201

cluster_stats_messages_pong_received:199

cluster_stats_messages_meet_received:2

cluster_stats_messages_received:402

127.0.0.1:6379>CLUSTERNODES

f5fc035a60177085dd6d878811f0ec71557321bd172.38.0.14:6379@16379slave48fbf97aaa206f7e6c71a10918891ea8be96cf35016397232746174connected

b1523ddce48fdbdc93299f9b626032805f748cb5172.38.0.15:6379@16379slave9d7456de5d339019f61a871f117fa527f6d7ddd2016397232726145connected

e04a1d1a2219d0cac0f21abb2db7a05bd9457117172.38.0.16:6379@16379myself,slave1902a1a872a462847e80152b8a28df57f92108a3016397232730006connected

48fbf97aaa206f7e6c71a10918891ea8be96cf35172.38.0.13:6379@16379master-016397232736153connected10923-16383

9d7456de5d339019f61a871f117fa527f6d7ddd2172.38.0.11:6379@16379master-016397232740001connected0-5460

1902a1a872a462847e80152b8a28df57f92108a3172.38.0.12:6379@16379master-016397232725132connected5461-10922

关于idbd-446和docker基础的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。



本文由欣欣吧手游攻略栏目发布,感谢您对欣欣吧的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“idbd-446

标签:
h长篇小说合集
« 上一篇 2023-10-17