docker port如何增加端口_docker部署redis实战
原創(chuàng)首發(fā)于公眾號:編程三分鐘
“ 換電腦的時候不想再搭建開發(fā)環(huán)境了!——編程三分鐘”
什么是docker
Docker是一個用來管理容器的應(yīng)用程序,而容器就是模擬運行應(yīng)用程序所依賴環(huán)境的一個服務(wù)。一般一個容器內(nèi)只安裝一個程序,在容器內(nèi)的應(yīng)用程序會認(rèn)為自己是機器上運行的唯一進程,一臺機器可以獨立運行多個容器。
使用容器的好處就是不用再繁瑣的配置運行環(huán)境,便于構(gòu)建、測試、持續(xù)集成;可以動態(tài)擴容和縮容、充分利用一臺服務(wù)器跑多個服務(wù),因此在本機就可以模擬出微服務(wù)架構(gòu)。
當(dāng)然,我個人覺得最爽的一點還是可以在容器里隨意的開發(fā)測試,但也不用擔(dān)心把自己心愛的電腦搞的亂七八糟了。
準(zhǔn)備
- 一臺安裝docker的機器
- 能通網(wǎng)并訪問最新版本的Docker Engine (服務(wù)端)
- 本地開發(fā)機器安裝了Docker Client(Docker 命令行工具),可通過命令行訪問。
運行容器
可以在 官網(wǎng)上 搜索到現(xiàn)成的鏡像,也可以用以下方式查找容器,命令格式:
docker search <name>實際執(zhí)行
$ docker search redis NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis Redis is an open source key-value store that… 7023 [OK] bitnami/redis Bitnami Redis Docker Image 114 [OK] 省略……我們找到了redis的OFFICIAL(官方)docker 鏡像名就是redis,為了讓它能提供服務(wù),我們接下來的任務(wù)就是讓他作為后臺服務(wù)運行,命令格式:
$ docker run <options> <image-name>默認(rèn)情況下,Docker將在前臺運行命令。要在后臺運行,需要指定選項-d。
$ docker run -d redis 570315fb8a0596ff5581653a77f8ef406f86a0ab4b1a2061de7a423335812ed3默認(rèn)情況下,Docker將運行最新版本。如果需要特定版本,則需要將其顯式的指定出來。
例如,版本3.2
由于這是我們第一次使用Redis鏡像,所以它將被下載到Docker主機上,如果本地存在就不會了。
查看運行中的容器
可以用docker ps命令列出所有正在運行的容器,包括用于啟動容器的鏡像和正常運行的時間等信息。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 570315fb8a05 redis "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 6379/tcp elastic_mclean列出正在運行的容器的更多詳細(xì)信息,例如IP地址,命令格式如下:
docker inspect <friendly-name|container-id>通過docker logs命令可以查看容器的日志,命令格式如下:
docker logs <friendly-name|container-id>訪問redis
我們現(xiàn)在用容器部署成功了一個redis,但是和直接安裝一個redis不一樣,容器就像一臺虛擬機一樣,想要訪問服務(wù),要不就進入到里面,要不就通過暴露端口像遠(yuǎn)程訪問一樣來進行訪問。
-p <host-port>:<container-port>選項可以在啟動容器的時候綁定端口。
這個時候使用-name <name>來在啟動容器的時候定義一個名稱,以后查詢以及查看日志都會比較方便。
因為redis默認(rèn)占用6379端口,我們可以將端口6379映射到本地的6379
$ docker run -d --name redisHostPort -p 6379:6379 redis:latest 694384d739307f3c5bc59fatips:默認(rèn)情況下,主機上的端口映射到0.0.0.0,可以在定義端口映射的時候指定特定的IP,例如-p 127.0.0.1:6379:6379
假設(shè)我們要部署多個redis不可能每次都自己親手來找一個端口來映射,docker是支持自動綁定到可用端口上的,只要用-p 6379這個參數(shù)就可以了,像下面這樣。
$ docker run -d --name redisDynamic -p 6379 redis:latest dcd3dabe51c3f0a8ddbdfd到底綁定了哪個端口,可以用以下命令查詢(這個時候就用到自定義的名稱redisDynamic了),當(dāng)然直接用docker ps也是可以的。
$ docker port redisDynamic 6379 0.0.0.0:32768存儲數(shù)據(jù)
在使用容器的時候我們會發(fā)現(xiàn),一旦創(chuàng)建和刪除、升級容器,里面存儲的數(shù)據(jù)也就隨風(fēng)而去了,所以我們必須想辦法把數(shù)據(jù)存儲下來。
我們查詢到官網(wǎng)上的redis鏡像存儲數(shù)據(jù)的目錄在/data目錄,然后我們存儲在本地/opt/docker/data/redis
使用參數(shù)-v 本機位置:容器內(nèi)位置
當(dāng)然了,也可以把配置文件重定向到本地,可以把所有的容器配置、日志、數(shù)據(jù)統(tǒng)一管理,非常的方便。
與平臺交互
docker run ubuntu ps 啟動Ubuntu容器并執(zhí)行命令ps以查看容器中運行的所有進程。docker run -it ubuntu bash直接訪問容器內(nèi)的bash shell。
$ docker run ubuntu psPID TTY TIME CMD1 ? 00:00:00 ps $ docker run -it ubuntu bash root@6db973337059:/# exit訪問正在運行的dockerdocker attach <container> 要attach上去的容器必須正在運行。docker exec -it <container> bash|sh直接訪問容器內(nèi)的bash shell。
$ docker attach c9c154695500 /bin/bash root@c9c154695500:/data# exit $ docker exec -it c9c154695500 /bin/bash root@c9c154695500:/data# exit這里也可以直接用容器name
- attach 直接進入容器,不會啟動新進程
- exec 在容器中打開新終端,會啟動新進程
那什么時候用attach,什么時候用exec呢?
推薦閱讀
(點擊標(biāo)題可跳轉(zhuǎn)閱讀)
10 個方便的Bash別名
如何向朋友解釋什么是云計算?
MySQL:硬盤在24 * 7工作中罷工了,我該怎么辦?
總結(jié)
以上是生活随笔為你收集整理的docker port如何增加端口_docker部署redis实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux安装-bin.rpm,Linu
- 下一篇: 卧龙吟游戏服务器不显示,卧龙吟你必须知道