| ±à¼ÍƼö: |
| ±¾ÎÄÀ´×ÔÓÚoschina£¬½éÉÜÁËDockerµÄÓŵ㣬Docker¼Ü¹¹£¬ÒÔCentOSΪÀý½éÉÜDocker°²×°µÈÏà¹ØÄÚÈÝ¡£ |
|
2013Äê·¢²¼ÖÁ½ñ£¬ Docker Ò»Ö±¹ãÊÜÖõÄ¿£¬±»ÈÏΪ¿ÉÄÜ»á¸Ä±äÈí¼þÐÐÒµ¡£
µ«ÊÇ£¬Ðí¶àÈ˲¢²»Çå³þ Docker µ½µ×ÊÇʲô£¬Òª½â¾öʲôÎÊÌ⣬ºÃ´¦ÓÖÔÚÄÄÀ½ñÌì¾ÍÀ´Ïêϸ½âÊÍ£¬°ïÖú´ó¼ÒÀí½âËü£¬»¹´øÓмòµ¥Ò×¶®µÄʵÀý£¬½ÌÄãÈçºÎ½«ËüÓÃÓÚÈÕ³£¿ª·¢²¢ÓÃÆä²¿Êð΢·þÎñ¡£

Docker¼ò½é
DockerÊÇÒ»¸ö¿ªÔ´µÄÈÝÆ÷ÒýÇæ£¬ËüÓÐÖúÓÚ¸ü¿ìµØ½»¸¶Ó¦ÓᣠDocker¿É½«Ó¦ÓóÌÐòºÍ»ù´¡ÉèÊ©²ã¸ôÀ룬²¢ÇÒÄܽ«»ù´¡ÉèÊ©µ±×÷³ÌÐòÒ»Ñù½øÐйÜÀí¡£Ê¹ÓÃ
Docker¿É¸ü¿ìµØ´ò°ü¡¢²âÊÔÒÔ¼°²¿ÊðÓ¦ÓóÌÐò£¬²¢¿ÉÒÔËõ¶Ì´Ó±àдµ½²¿ÊðÔËÐдúÂëµÄÖÜÆÚ¡£
DockerµÄÓŵãÈçÏ£º
1¡¢¼ò»¯³ÌÐò
Docker Èÿª·¢Õß¿ÉÒÔ´ò°üËûÃǵÄÓ¦ÓÃÒÔ¼°ÒÀÀµ°üµ½Ò»¸ö¿ÉÒÆÖ²µÄÈÝÆ÷ÖУ¬È»ºó·¢²¼µ½ÈκÎÁ÷ÐÐµÄ Linux
»úÆ÷ÉÏ£¬±ã¿ÉÒÔʵÏÖÐéÄ⻯¡£Docker¸Ä±äÁËÐéÄ⻯µÄ·½Ê½£¬Ê¹¿ª·¢Õß¿ÉÒÔÖ±½Ó½«×Ô¼ºµÄ³É¹û·ÅÈëDockerÖнøÐйÜÀí¡£·½±ã¿ì½ÝÒѾÊÇ
DockerµÄ×î´óÓÅÊÆ£¬¹ýÈ¥ÐèÒªÓÃÊýÌìÄËÖÁÊýÖÜµÄ ÈÎÎñ£¬ÔÚDockerÈÝÆ÷µÄ´¦ÀíÏ£¬Ö»ÐèÒªÊýÃë¾ÍÄÜÍê³É¡£
2¡¢±ÜÃâÑ¡Ôñ¿Ö¾åÖ¢
Èç¹ûÄãÓÐÑ¡Ôñ¿Ö¾åÖ¢£¬»¹ÊÇ×ÊÉÕß¡£Docker °ïÄã ´ò°üÄãµÄ¾À½á£¡±ÈÈç Docker ¾µÏñ£»Docker
¾µÏñÖаüº¬ÁËÔËÐл·¾³ºÍÅäÖã¬ËùÒÔ Docker ¿ÉÒÔ¼ò»¯²¿Êð¶àÖÖÓ¦ÓÃʵÀý¹¤×÷¡£±ÈÈç Web Ó¦Óᢺǫ́ӦÓá¢Êý¾Ý¿âÓ¦ÓᢴóÊý¾ÝÓ¦ÓñÈÈç
Hadoop ¼¯Èº¡¢ÏûÏ¢¶ÓÁеȵȶ¼¿ÉÒÔ´ò°ü³ÉÒ»¸ö¾µÏñ²¿Êð¡£
3¡¢½ÚÊ¡¿ªÖ§
Ò»·½Ãæ£¬ÔÆ¼ÆËãʱ´úµ½À´£¬Ê¹¿ª·¢Õß²»±ØÎªÁË×·ÇóЧ¹û¶øÅäÖø߶îµÄÓ²¼þ£¬Docker ¸Ä±äÁ˸ßÐÔÄܱØÈ»¸ß¼Û¸ñµÄ˼ά¶¨ÊÆ¡£Docker
ÓëÔÆµÄ½áºÏ£¬ÈÃÔÆ¿Õ¼äµÃµ½¸ü³ä·ÖµÄÀûÓᣲ»½ö½â¾öÁËÓ²¼þ¹ÜÀíµÄÎÊÌ⣬Ҳ¸Ä±äÁËÐéÄ⻯µÄ·½Ê½¡£
Docker¼Ü¹¹

Docker daemon£¨ DockerÊØ»¤½ø³Ì£©
Docker daemonÊÇÒ»¸öÔËÐÐÔÚËÞÖ÷»ú£¨ DOCKER-HOST£©µÄºǫ́½ø³Ì¡£¿Éͨ¹ý Docker¿Í»§¶ËÓë֮ͨÐÅ¡£
Client£¨ Docker¿Í»§¶Ë£©
Docker¿Í»§¶ËÊÇ DockerµÄÓû§½çÃæ£¬Ëü¿ÉÒÔ½ÓÊÜÓû§ÃüÁîºÍÅäÖñêʶ£¬²¢Óë Docker daemonͨÐÅ¡£Í¼ÖУ¬
docker buildµÈ¶¼ÊÇ DockerµÄÏà¹ØÃüÁî¡£
Images£¨ Docker¾µÏñ£©
Docker¾µÏñÊÇÒ»¸öÖ»¶ÁÄ£°å£¬Ëü°üº¬´´½¨ DockerÈÝÆ÷µÄ˵Ã÷¡£ËüºÍϵͳ°²×°¹âÅÌÓеãÏñ£¬Ê¹ÓÃϵͳ°²×°¹âÅÌ¿ÉÒÔ°²×°ÏµÍ³£¬Í¬Àí£¬Ê¹ÓÃDocker¾µÏñ¿ÉÒÔÔËÐÐ
Docker¾µÏñÖеijÌÐò¡£
Container£¨ÈÝÆ÷£©
ÈÝÆ÷ÊǾµÏñµÄ¿ÉÔËÐÐʵÀý¡£¾µÏñºÍÈÝÆ÷µÄ¹ØÏµÓеãÀàËÆÓÚÃæÏò¶ÔÏóÖУ¬ÀàºÍ¶ÔÏóµÄ¹ØÏµ¡£¿Éͨ¹ý Docker
API»òÕß CLIÃüÁîÀ´ÆôÍ£¡¢Òƶ¯¡¢É¾³ýÈÝÆ÷¡£
Registry
Docker RegistryÊÇÒ»¸ö¼¯Öд洢Óë·Ö·¢¾µÏñµÄ·þÎñ¡£¹¹½¨Íê Docker¾µÏñºó£¬¾Í¿ÉÔÚµ±Ç°ËÞÖ÷»úÉÏÔËÐС£µ«Èç¹ûÏëÒªÔÚÆäËû»úÆ÷ÉÏÔËÐÐÕâ¸ö¾µÏñ£¬¾ÍÐèÒªÊÖ¶¯¸´ÖÆ¡£´Ëʱ¿É½èÖú
Docker RegistryÀ´±ÜÃâ¾µÏñµÄÊÖ¶¯¸´ÖÆ¡£
Ò»¸ö Docker Registry¿É°üº¬¶à¸ö Docker²Ö¿â£¬Ã¿¸ö²Ö¿â¿É°üº¬¶à¸ö¾µÏñ±êÇ©£¬Ã¿¸ö±êÇ©¶ÔÓ¦Ò»¸ö
Docker¾µÏñ¡£Õâ¸ú MavenµÄ²Ö¿âÓеãÀàËÆ£¬Èç¹û°Ñ Docker Registry±È×÷ Maven²Ö¿âµÄ»°£¬ÄÇô
Docker²Ö¿â¾Í¿ÉÀí½âΪijjar°üµÄ·¾¶£¬¶ø¾µÏñ±êÇ©Ôò¿ÉÀí½âΪjar°üµÄ°æ±¾ºÅ¡£
Docker°²×°
Docker ÊÇÒ»¸ö¿ªÔ´µÄÉÌÒµ²úÆ·£¬ÓÐÁ½¸ö°æ±¾£ºÉçÇø°æ£¨Community Edition£¬ËõдΪ
CE£©ºÍÆóÒµ°æ£¨Enterprise Edition£¬ËõдΪ EE£©¡£ÆóÒµ°æ°üº¬ÁËһЩÊÕ·Ñ·þÎñ£¬¸öÈË¿ª·¢ÕßÒ»°ãÓò»µ½¡£ÏÂÃæµÄ½éÉܶ¼Õë¶ÔÉçÇø°æ¡£
Docker CE µÄ°²×°Çë²Î¿¼¹Ù·½Îĵµ¡£ÒÔÏÂÁгö²»Í¬²Ù×÷ϵͳµÄ°²×°·½·¨£¬Ö±½Óµã»÷½øÈë²é¿´
Mac
Windows
Ubuntu
Debian
CentOS
Fedora
ÆäËû Linux ·¢Ðаæ
ÎÒÃÇÕâÀïÒÔCentOSΪÀý£º
1¡¢Docker ÒªÇó CentOS ϵͳµÄÄں˰汾¸ßÓÚ 3.10 £¬²é¿´±¾Ò³ÃæµÄǰÌáÌõ¼þÀ´ÑéÖ¤ÄãµÄCentOS
°æ±¾ÊÇ·ñÖ§³Ö Docker ¡£
ͨ¹ý uname -r ÃüÁî²é¿´Ä㵱ǰµÄÄں˰汾
2¡¢Ê¹Óà root ȨÏ޵Ǽ Centos¡£È·±£ yum °ü¸üе½×îС£
3¡¢Ð¶Ôؾɰ汾(Èç¹û°²×°¹ý¾É°æ±¾µÄ»°)
| # yum remove
docker docker-common docker-selinux docker-engine |
4¡¢°²×°ÐèÒªµÄÈí¼þ°ü£¬ yum-util Ìṩyum-config-manager¹¦ÄÜ£¬ÁíÍâÁ½¸öÊÇdevicemapperÇý¶¯ÒÀÀµµÄ
| # yum install
-y yum-utils device-mapper-persistent-data lvm2 |
5¡¢ÉèÖÃyumÔ´
| # yum-config-manager
--add-repo https://download.docker.com/linux/centos/docker-ce.repo |

6¡¢¿ÉÒԲ鿴ËùÓвֿâÖÐËùÓÐdocker°æ±¾£¬²¢Ñ¡ÔñÌØ¶¨°æ±¾°²×°
| # yum list docker-ce
--showduplicates | sort -r |

7¡¢°²×°docker
| # sudo yum install
-y docker-ce #ÓÉÓÚrepoÖÐĬÈÏÖ»¿ªÆôstable²Ö¿â£¬¹ÊÕâÀï°²×°µÄÊÇ×îÐÂÎȶ¨°æ18.03.1 |

8¡¢Æô¶¯²¢¼ÓÈ뿪»úÆô¶¯
# systemctl start
docker
# systemctl enable docker |
9¡¢ÑéÖ¤°²×°ÊÇ·ñ³É¹¦(ÓÐclientºÍserviceÁ½²¿·Ö±íʾdocker°²×°Æô¶¯¶¼³É¹¦ÁË)

10¡¢Ð¶ÔØdocker
| # yum -y remove
docker-engine |
Docker³£ÓÃÃüÁî
¾µÏñÏà¹ØÃüÁî
1¡¢ËÑË÷¾µÏñ
¿ÉʹÓà docker searchÃüÁîËÑË÷´æ·ÅÔÚ Docker Hub(ÕâÊÇdocker¹Ù·½ÌṩµÄ´æ·ÅËùÓÐdocker¾µÏñÈí¼þµÄµØ·½£¬ÀàËÆmavenµÄÖÐÑë²Ö¿â)ÖеľµÏñ¡£Ö´ÐиÃÃüÁîºó£¬
Docker¾Í»áÔÚDocker HubÖÐËÑË÷º¬ÓÐ javaÕâ¸ö¹Ø¼ü´ÊµÄ¾µÏñ²Ö¿â¡£

ÒÔÉÏÁбí°üº¬ÎåÁУ¬º¬ÒåÈçÏ£º
- NAME:¾µÏñ²Ö¿âÃû³Æ¡£
- DESCRIPTION:¾µÏñ²Ö¿âÃèÊö¡£
- STARS£º¾µÏñ²Ö¿âÊÕ²ØÊý£¬±íʾ¸Ã¾µÏñ²Ö¿âµÄÊÜ»¶Ó³Ì¶È£¬ÀàËÆÓÚ GitHubµÄ stars0
- OFFICAL:±íʾÊÇ·ñΪ¹Ù·½²Ö¿â£¬¸ÃÁбê¼ÇΪ[0K]µÄ¾µÏñ¾ùÓɸ÷Èí¼þµÄ¹Ù·½ÏîÄ¿×é´´½¨ºÍά»¤¡£
- AUTOMATED£º±íʾÊÇ·ñÊÇ×Ô¶¯¹¹½¨µÄ¾µÏñ²Ö¿â¡£
×¢Ò⣺ʹÓÃdocker²éÕÒ»òÏÂÔØ¾µÏñ¿ÉÄܻᳬʱ£¬ËùÒÔÎÒÃÇÐèҪΪdockerÅäÖùúÄڵľµÏñ¼ÓËÙÆ÷
ÎÒÃÇ¿ÉÒÔ½èÖú°¢ÀïÔÆµÄ¾µÏñ¼ÓËÙÆ÷£¬µÇ¼°¢ÀïÔÆ(https://cr.console.aliyun.com/#/accelerator)
¿ÉÒÔ¿´µ½¾µÏñ¼ÓËÙµØÖ·ÈçÏÂͼ£º

²é¿´ÓÐûÓÐ daemon.json¡£ÕâÊÇdockerĬÈϵÄÅäÖÃÎļþ¡£
Èç¹ûûÓÐн¨£¬Èç¹ûÓУ¬ÔòÐ޸ġ£
# vim daemon.json
{
"registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]
} |
±£´æÍ˳ö²¢ÖØÆôdocker·þÎñ
2¡¢ÏÂÔØ¾µÏñ
ʹÓÃÃüÁîdocker pullÃüÁî¼´¿É´Ó Docker RegistryÉÏÏÂÔØ¾µÏñ£¬Ö´ÐиÃÃüÁîºó£¬Docker»á´Ó
Docker HubÖÐµÄ java²Ö¿âÏÂÔØ×îа汾µÄ Java¾µÏñ¡£Èç¹ûÒªÏÂÔØÖ¸¶¨°æ±¾ÔòÔÚjavaºóÃæ¼ÓðºÅÖ¸¶¨°æ±¾£¬ÀýÈ磺docker
pull java:8

3¡¢Áгö¾µÏñ
ʹÓà docker imagesÃüÁî¼´¿ÉÁгöÒÑÏÂÔØµÄ¾µÏñ

ÒÔÉÏÁÐ±íº¬ÒåÈçÏÂ
- REPOSITORY£º¾µÏñËùÊô²Ö¿âÃû³Æ¡£
- TAG:¾µÏñ±êÇ©¡£Ä¬ÈÏÊÇ latest,±íʾ×îС£
- IMAGE ID£º¾µÏñ ID£¬±íʾ¾µÏñΨһ±êʶ¡£
- CREATED£º¾µÏñ´´½¨Ê±¼ä¡£
- SIZE: ¾µÏñ´óС¡£
4¡¢É¾³ý±¾µØ¾µÏñ
ʹÓà docker rmiÃüÁî¼´¿Éɾ³ýÖ¸¶¨¾µÏñ
ÈÝÆ÷Ïà¹ØÃüÁî
1¡¢Ð½¨²¢Æô¶¯ÈÝÆ÷
ʹÓÃÒÔÏÂdocker run <¾µÏñÃû>ÃüÁî¼´¿Éн¨²¢Æô¶¯Ò»¸öÈÝÆ÷£¬¸ÃÃüÁîÊÇ×î³£ÓõÄÃüÁËüÓкܶàÑ¡ÏÏÂÃæ½«ÁоÙһЩ³£ÓõÄÑ¡Ïî¡£
| # docker run
-d -p 91:80 nginx |
ÕâÑù¾ÍÄÜÆô¶¯Ò»¸ö NginxÈÝÆ÷¡£ÔÚ±¾ÀýÖУ¬Îª docker runÌí¼ÓÁËÁ½¸ö²ÎÊý£¬º¬ÒåÈçÏ£º
-d ºǫ́ÔËÐÐ
-p ËÞÖ÷»ú¶Ë¿Ú:ÈÝÆ÷¶Ë¿Ú #¿ª·ÅÈÝÆ÷¶Ë¿Úµ½ËÞÖ÷»ú¶Ë¿Ú
·ÃÎÊ http://DockerËÞÖ÷»ú IP:91/£¬½«»á¿´µ½nginxµÄÖ÷½çÃæÈçÏ£º

ÐèҪעÒâµÄÊÇ£¬Ê¹Óà docker runÃüÁî´´½¨ÈÝÆ÷ʱ£¬»áÏȼì²é±¾µØÊÇ·ñ´æÔÚÖ¸¶¨¾µÏñ¡£Èç¹û±¾µØ²»´æÔÚ¸ÃÃû³ÆµÄ¾µÏñ£¬
Docker¾Í»á×Ô¶¯´Ó Docker HubÏÂÔØ¾µÏñ²¢Æô¶¯Ò»¸ö DockerÈÝÆ÷¡£
¸ÃÃüÁÓÐÒ»¸öÍøÂçÅäÖòÎÊý£¬ÈçÏÂËùʾ
--netÑ¡Ïָ¶¨ÍøÂçģʽ£¬¸ÃÑ¡ÏîÓÐÒÔÏ¿ÉÑ¡²ÎÊý£º
--net=bridge:ĬÈÏÑ¡Ï±íʾÁ¬½Óµ½Ä¬ÈϵÄÍøÇÅ¡£
--net=host:ÈÝÆ÷ʹÓÃËÞÖ÷»úµÄÍøÂç¡£
--net=container:NAME-or-ID£º¸æËß DockerÈÃн¨µÄÈÝÆ÷ʹÓÃÒÑÓÐÈÝÆ÷µÄÍøÂçÅäÖá£
--net=none£º²»ÅäÖøÃÈÝÆ÷µÄÍøÂ磬Óû§¿É×Ô¶¨ÒåÍøÂçÅäÖá£
2¡¢ÁгöÈÝÆ÷
Óà docker psÃüÁî¼´¿ÉÁгöÔËÐÐÖеÄÈÝÆ÷

ÈçÐèÁгöËùÓÐÈÝÆ÷£¨°üÀ¨ÒÑÍ£Ö¹µÄÈÝÆ÷£©£¬¿ÉʹÓÃ-a²ÎÊý¡£¸ÃÁбí°üº¬ÁË7ÁУ¬º¬ÒåÈçÏÂ
- CONTAINER_ID£º±íʾÈÝÆ÷ ID¡£
- IMAGE:±íʾ¾µÏñÃû³Æ¡£
- COMMAND£º±íʾÆô¶¯ÈÝÆ÷ʱÔËÐеÄÃüÁî¡£
- CREATED£º±íʾÈÝÆ÷µÄ´´½¨Ê±¼ä¡£
- STATUS£º±íʾÈÝÆ÷ÔËÐеÄ״̬¡£UP±íʾÔËÐÐÖУ¬ Exited±íʾÒÑÍ£Ö¹¡£
- PORTS:±íʾÈÝÆ÷¶ÔÍâµÄ¶Ë¿ÚºÅ¡£
- NAMES:±íʾÈÝÆ÷Ãû³Æ¡£¸ÃÃû³ÆÄ¬ÈÏÓÉ Docker×Ô¶¯Éú³É£¬Ò²¿ÉʹÓà docker runÃüÁîµÄ--nameÑ¡Ïî×ÔÐÐÖ¸¶¨¡£
3¡¢Í£Ö¹ÈÝÆ÷
ʹÓà docker stop <ÈÝÆ÷id>ÃüÁ¼´¿ÉÍ£Ö¹ÈÝÆ÷
| # docker stop
f0b1c8ab3633 |
ÆäÖÐf0b1c8ab3633ÊÇÈÝÆ÷ ID,µ±È»Ò²¿ÉʹÓà docker stopÈÝÆ÷Ãû³ÆÀ´Í£Ö¹Ö¸¶¨ÈÝÆ÷
4¡¢Ç¿ÖÆÍ£Ö¹ÈÝÆ÷
¿ÉʹÓà docker kill <ÈÝÆ÷id>ÃüÁî·¢ËÍ SIGKILLÐźÅÀ´Ç¿ÖÆÍ£Ö¹ÈÝÆ÷
| # docker kill
f0b1c8ab3633 |
5¡¢Æô¶¯ÒÑÍ£Ö¹µÄÈÝÆ÷
ʹÓÃdocker runÃüÁ¼´¿Éн¨²¢Æô¶¯Ò»¸öÈÝÆ÷¡£¶ÔÓÚÒÑÍ£Ö¹µÄÈÝÆ÷£¬¿ÉʹÓÃ
docker start <ÈÝÆ÷id>ÃüÁîÀ´Æô¶¯
| # docker start
f0b1c8ab3633 |
6¡¢²é¿´ÈÝÆ÷ËùÓÐÐÅÏ¢
ʹÓÃÃüÁîdocker inspect <ÈÝÆ÷id>
| # docker inspect
f0b1c8ab3633 |
7¡¢²é¿´ÈÝÆ÷ÈÕÖ¾£¬
ʹÓÃÃüÁîdocker container logs <ÈÝÆ÷id>
| # docker container
logs f0b1c8ab3633 |
8¡¢²é¿´ÈÝÆ÷ÀïµÄ½ø³Ì
ʹÓÃÃüÁîdocker top <ÈÝÆ÷id>
| # docker top
f0b1c8ab3633 |
9¡¢½øÈëÈÝÆ÷
ʹÓÃdocker container exec -it <ÈÝÆ÷id>
/bin/bashÃüÁîÓÃÓÚ½øÈëÒ»¸öÕýÔÚÔËÐеÄdockerÈÝÆ÷¡£Èç¹ûdocker runÃüÁîÔËÐÐÈÝÆ÷µÄʱºò£¬Ã»ÓÐʹÓÃ-it²ÎÊý£¬¾ÍÒªÓÃÕâ¸öÃüÁî½øÈëÈÝÆ÷¡£Ò»µ©½øÈëÁËÈÝÆ÷£¬¾Í¿ÉÒÔÔÚÈÝÆ÷µÄ
Shell Ö´ÐÐÃüÁîÁË
| # docker container
exec -it f0b1c8ab3633 /bin/bash |
9¡¢É¾³ýÈÝÆ÷
ʹÓà docker rmÃüÁî¼´¿Éɾ³ýÖ¸¶¨ÈÝÆ÷
¸ÃÃüÁîÖ»ÄÜɾ³ýÒÑÍ£Ö¹µÄÈÝÆ÷£¬ÈçÐèɾ³ýÕýÔÚÔËÐеÄÈÝÆ÷£¬¿ÉʹÓÃ-f²ÎÊý
¹¹½¨×Ô¼ºµÄdocker¾µÏñ
ʹÓÃDockerfile¹¹½¨×Ô¼ºµÄDocker¾µÏñ
DockerfileÊÇÒ»¸öÎı¾Îļþ£¬ÆäÖаüº¬ÁËÈô¸ÉÌõÖ¸ÁָÁîÃèÊöÁ˹¹½¨¾µÏñµÄϸ½Ú
ÏÈÀ´±àдһ¸ö×î¼òµ¥µÄDockerfile£¬ÒÔǰÎÄÏÂÔØµÄNginx¾µÏñΪÀý£¬À´±àдһ¸öDockerfileÐ޸ĸÃNginx¾µÏñµÄÊ×Ò³
1¡¢Ð½¨Îļþ¼Ð/app£¬ÔÚappĿ¼ÏÂн¨Ò»¸öÃûΪDockerfileµÄÎļþ£¬ÔÚÀïÃæÔö¼ÓÈçÏÂÄÚÈÝ£º
FROM nginx #´Ó±¾µØµÄ¾µÏñ²Ö¿âÀïÀÈ¡ngxinµÄdocker¾µÏñ
RUN echo 'This is QingFeng Nginx!!!' > /usr/share/nginx/html/index.html
#ÐÞ¸ÄngxinµÄdocker¾µÏñµÄÊ×Ò³ÄÚÈÝ |
¸ÃDockerfile·Ç³£¼òµ¥£¬ÆäÖÐµÄ FORM¡¢ RUN¶¼ÊÇ DockerfileµÄÖ¸Áî¡£ FROMÖ¸ÁîÓÃÓÚÖ¸¶¨»ù´¡¾µÏñ£¬
RUNÖ¸ÁîÓÃÓÚÖ´ÐÐÃüÁî¡£
2¡¢ÔÚDockerfileËùÔÚ·¾¶Ö´ÐÐÒÔÏÂÃüÁî¹¹½¨ÎÒÃÇ×Ô¼ºµÄngxin¾µÏñ£¬¹¹½¨Íê¿ÉÓÃdocker
imagesÃüÁî²é¿´ÊÇ·ñÒÑÉú³É¾µÏñngxin:tuling£º
| # docker build
-t nginx:qingfeng . |
ÆäÖУ¬-tÖ¸¶¨¾µÏñÃû×Ö£¬ÃüÁî×îºóµÄµã£¨.£©±íʾDockerfileÎļþËùÔÚ·¾¶
3¡¢Ö´ÐÐÒÔÏÂÃüÁ¼´¿ÉʹÓøþµÏñÆô¶¯Ò»¸ö DockerÈÝÆ÷
| # docker run
-d -p 92:80 nginx:qingfeng |
4¡¢·ÃÎÊ http://DockerËÞÖ÷»úIP:92/£¬¿É¿´µ½ÏÂͼËùʾ½çÃæ£¬

DockerfileµÄÎļþ±àд»¹ÓÐÈçϳ£ÓÃÖ¸Áî

×¢Ò⣺RUNÃüÁîÔÚ image ÎļþµÄ¹¹½¨½×¶ÎÖ´ÐУ¬Ö´Ðнá¹û¶¼»á´ò°ü½øÈë image Îļþ£»CMDÃüÁîÔòÊÇÔÚÈÝÆ÷Æô¶¯ºóÖ´ÐС£ÁíÍ⣬һ¸ö
Dockerfile ¿ÉÒÔ°üº¬¶à¸öRUNÃüÁµ«ÊÇÖ»ÄÜÓÐÒ»¸öCMDÃüÁî¡£
×¢Ò⣬ָ¶¨ÁËCMDÃüÁîÒÔºó£¬docker container runÃüÁî¾Í²»Äܸ½¼ÓÃüÁîÁË£¨±ÈÈçÇ°ÃæµÄ/bin/bash£©£¬·ñÔòËü»á¸²¸ÇCMDÃüÁî¡£
ʹÓÃDockerfile¹¹½¨Î¢·þÎñ¾µÏñ
ÒÔspring bootÏîÄ¿ms-eureka-server(Ô´ÂëÔÚ×îºó)ΪÀý£¬¸ÃÏîÄ¿¾ÍÊÇÒ»¸öspring
cloud eurekaµÄ΢·þÎñÏîÄ¿£¬¸ÃÏîÄ¿¿Éͨ¹ýspring bootµÄmaven²å¼þ´ò°ü³É¿ÉÖ´ÐеÄjar°üÔËÐУ¬ÈçÏÂͼËùʾ

½«¸ÃÏîÄ¿µÄ¿ÉÖ´ÐÐjar°ü¹¹½¨³Édocker¾µÏñ£º
1¡¢½«jar°üÉÏ´«linux·þÎñÆ÷/app/eurekaĿ¼£¬ÔÚjar°üËùÔÚĿ¼´´½¨ÃûΪDockerfileµÄÎļþ
2¡¢ÔÚDockerfileÖÐÌí¼ÓÒÔÏÂÄÚÈÝ
# »ùÓÚÄĸö¾µÏñ
# ¸´ÖÆÎļþµ½ÈÝÆ÷
| ADD microservice-eureka-server-0.0.1-SNAPSHOT.jar
/app.jar |
# ÉùÃ÷ÐèÒª±©Â¶µÄ¶Ë¿Ú
| EXPOSE 8761
# ΢·þÎñÏîÄ¿µÄÆô¶¯¶Ë¿Ú |
# ÅäÖÃÈÝÆ÷Æô¶¯ºóÖ´ÐеÄÃüÁî
| ENTRYPOINT ["java","-jar","/app.jar"] |
3¡¢Ê¹ÓÃdocker buildÃüÁî¹¹½¨¾µÏñ
| # docker build
-t microservice-eureka-server:0.0.1 . |
# ¸ñʽ£º docker build -t ¾µÏñÃû³Æ:±êÇ© DockerfileµÄÏà¶ÔλÖÃ
ÔÚÕâÀʹÓÃ-tÑ¡ÏîÖ¸¶¨Á˾µÏñµÄ±êÇ©¡£Ö´ÐиÃÃüÁîºó£¬Öն˽«»áÊä³öÈçϵÄÄÚÈÝ

4¡¢Æô¶¯¾µÏñ£¬¼Ó-d¿ÉÔÚºǫ́Æô¶¯
| # docker run
-p 8761:8761 microservice-eureka-server:0.0.1 |
5¡¢·ÃÎÊhttp://DockerËÞÖ÷»úIP:8761/£¬¿ÉÕý³£ÏÔʾ΢·þÎñEureka
ServerµÄÊ×Ò³

|