1.Docker安裝 nginx
關鍵字查找 Docker Hub 上的 nginx 鏡像
runoob@runoob:~/nginx$ docker search nginx
獲取官網(wǎng)鏡像
$ docker pull nginx
等待下載完成后溯壶,我們就可以在本地鏡像列表里查到 REPOSITORY 為 nginx 的鏡像
runoob@runoob:~/nginx$ docker images nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 555bbd91e13c 3 days ago 182.8 MB
以下命令使用 NGINX 默認的配置來啟動一個 Nginx 容器實例
docker run --name runoob-nginx-test -p 8081:80 -d nginx
docker ps
-
runoob-nginx-test
容器名稱。 - the
-d
設置容器在在后臺一直運行。 - the
-p
端口進行映射扁耐,將本地 8081 端口映射到容器內(nèi)部的 80 端口字柠。
執(zhí)行以上命令會生成一串字符串弧哎,類似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938朵逝,這個表示容器的 ID,一般可作為日志的文件名坷襟。
我們可以使用 docker ps 命令查看容器是否有在運行:
$ docker ps
CONTAINER ID IMAGE ... PORTS NAMES
6dd4380ba708 nginx ... 0.0.0.0:8081->80/tcp runoob-nginx-test
PORTS 部分表示端口映射奸柬,本地的 8081 端口映射到容器內(nèi)部的 80 端口。
在瀏覽器中打開 http://127.0.0.1:8081/婴程,效果如下:
Welcome to nginx廓奕!
nginx 部署
首先,創(chuàng)建目錄 nginx, 用于存放后面的相關東西
mkdir -p ~/dockerdata/nginx/html ~/dockerdata/nginx/logs ~/dockerdata/nginx/conf
拷貝容器內(nèi) Nginx 默認配置文件到本地當前目錄下的 conf 目錄档叔,容器 ID 可以查看 docker ps 命令輸入中的第一列:(要查看拷貝的nginx.conf是否有數(shù)據(jù)桌粉,沒有數(shù)據(jù)創(chuàng)建容器時會報錯。解決方式:刪除拷貝的nginx.conf衙四、重新拷貝铃肯。)
docker cp 6dd4380ba708:/etc/nginx/nginx.conf ~/dockerdata/nginx/conf
- www: 目錄將映射為 nginx 容器配置的虛擬目錄。
- logs: 目錄將映射為 nginx 容器的日志目錄传蹈。
- conf: 目錄里的配置文件將映射為 nginx 容器的配置文件押逼。
運行容器
[root@localhost ~]# docker run -d -p 8081:80 --name container-nginx-web -v ~/dockerdata/nginx/html:/usr/share/nginx/html -v ~/dockerdata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/dockerdata/nginx/logs:/var/log/nginx nginx
命令說明:
- -p 8081:80: 將容器的 80 端口映射到主機的 8082 端口。
- --name container-nginx-web:將容器命名為 runoob-nginx-test-web惦界。
- -v ~/dockerdata/nginx/html:/usr/share/nginx/html:將我們自己創(chuàng)建的 html目錄掛載到容器的 /usr/share/nginx/html挑格。
- -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:將我們自己創(chuàng)建的 nginx.conf 掛載到容器的 /etc/nginx/nginx.conf。
- -v ~/nginx/logs:/var/log/nginx:將我們自己創(chuàng)建的 logs 掛載到容器的 /var/log/nginx沾歪。
訪問:http://129.204.207.127:8081
2.Docker安裝 tomcat
查找Docker Hub上的tomcat鏡像
runoob@runoob:~/tomcat$ docker search tomcat
這里我們拉取官方的鏡像
runoob@runoob:~/tomcat$ docker pull tomcat
等待下載完成后漂彤,我們就可以在本地鏡像列表里查到REPOSITORY為tomcat的鏡像。
runoob@runoob:~/tomcat$ docker images|grep tomcat
tomcat latest 70f819d3d2d9 7 days ago 335.8 MB
tomcat部署
mkdir -p ~/dockerdata/tomcat/webapps ~/dockerdata/tomcat/logs ~/dockerdata/tomcat/conf
為配置多個tomcat服務改端口考慮
docker cp 6dd4380ba708:/usr/local/tomcat/conf/server.xml ~/dockerdata/tomcat/conf
運行容器
[root@localhost ~]# docker run --name tomcat -p 8080:8080 -v ~/dockerdata/tomcat/webapps:/usr/local/tomcat/webapps -v ~/dockerdata/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml -v ~/dockerdata/tomcat/logs:/usr/local/tomcat/logs -d tomcat
命令說明:
-p 8080:8080:將容器的8080端口映射到主機的8080端口
-v $PWD/test:/usr/local/tomcat/webapps/test:將主機中當前目錄下的test掛載到容器的/test
查看容器啟動情況
runoob@runoob:~/tomcat$ docker ps
CONTAINER ID IMAGE COMMAND ... PORTS NAMES
acb33fcb4beb tomcat "catalina.sh run" ... 0.0.0.0:8080->8080/tcp tomcat
通過瀏覽器訪問:192.168.2.195:8080
3.Docker安裝 redis
查找Docker Hub上的redis鏡像
runoob@runoob:~/redis$ docker search redis
這里我們拉取官方的鏡像,標簽為3.2
runoob@runoob:~/redis$ docker pull redis:3.2
等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為redis,標簽為3.2的鏡像挫望。
runoob@runoob:~/redis$ docker images redis
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 3.2 43c923d57784 2 weeks ago 193.9 MB
redis部署
創(chuàng)建redis目錄
mkdir -p ~/dockerdata/redis/data
說明:-v [圖片上傳失敗...(image-e4e041-1574564255984)]
PWD 是指當前目錄的絕對路徑立润,隨cd指令變化而變。
運行容器:
docker run -p 6379:6379 -v ~/dockerdata/redis/data:/data -d redis:3.2 redis-server --appendonly yes
命令說明:
-p 6379:6379 : 將容器的6379端口映射到主機的6379端口
-v $PWD/data:/data : 將主機中當前目錄下的data掛載到容器的/data
redis-server --appendonly yes : 在容器執(zhí)行redis-server啟動命令士骤,并打開redis持久化配置
查看容器啟動情況
runoob@runoob:~/redis$ docker ps
CONTAINER ID IMAGE COMMAND ... PORTS NAMES
43f7a65ec7f8 redis:3.2 "docker-entrypoint.sh" ... 0.0.0.0:6379->6379/tcp agitated_cray
連接范删、查看容器
使用redis鏡像執(zhí)行redis-cli命令連接到剛啟動的容器,主機IP為172.17.0.1
runoob@runoob:~/redis$ docker exec -it 43f7a65ec7f8 redis-cli
172.17.0.1:6379> info
# Server
redis_version:3.2.0
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:f449541256e7d446
redis_mode:standalone
os:Linux 4.2.0-16-generic x86_64
arch_bits:64
multiplexing_api:epoll
...
4.Docker安裝 mongodb
查找Docker Hub上的mongo鏡像
runoob@runoob:~/mongo$ docker search mongo
這里我們拉取官方的鏡像,標簽為3.2
runoob@runoob:~/mongo$ docker pull mongo
等待下載完成后蕾域,我們就可以在本地鏡像列表里查到REPOSITORY為mongo,標簽為3.2的鏡像拷肌。
runoob@runoob:~/mongo$ docker images mongo
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest 63c6b736e399 2 days ago 379MB
mongodb部署
mkdir -p ~/dockerdata/mongodb/data/db
運行容器
docker run -p 27017:27017 -v ~/dockerdata/mongodb/data/db:/data/db -d mongo:3.2
命令說明:
-p 27017:27017 :將容器的27017 端口映射到主機的27017 端口
-v $PWD/db:/data/db :將主機中當前目錄下的db掛載到容器的/data/db,作為mongo數(shù)據(jù)存儲目錄
查看容器啟動情況
runoob@runoob:~/mongo$ docker ps
CONTAINER ID IMAGE COMMAND ... PORTS NAMES
cda8830cad5f mongo:3.2 "/entrypoint.sh mongo" ... 0.0.0.0:27017->27017/tcp suspicious_goodall
使用mongo鏡像執(zhí)行mongo 命令連接到剛啟動的容器,主機IP為172.17.0.1
runoob@runoob:~/mongo$ docker run -it mongo:3.2 mongo --host 172.17.0.1
MongoDB shell version: 3.2.7
connecting to: 172.17.0.1:27017/test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
>
5.Docker安裝 mysql
查找Docker Hub上的mysql鏡像
runoob@runoob:/mysql$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2529 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 161 [OK]
這里我們拉取官方的鏡像,標簽為5.6
runoob@runoob:~/mysql$ docker pull mysql:5.6
等待下載完成后旨巷,我們就可以在本地鏡像列表里查到REPOSITORY為mysql,標簽為5.6的鏡像巨缘。
runoob@runoob:~/mysql$ docker images |grep mysql
mysql 5.6 2c0964ec182a 3 weeks ago 329 MB
mysql部署
mkdir -p ~/dockerdata/mysql/conf ~/dockerdata/mysql/logs ~/dockerdata/mysql/data
運行容器
docker run -p 3306:3306 --name mysql -v ~/dockerdata/mysql/conf:/etc/mysql/conf.d -v ~/dockerdata/mysql/logs:/logs -v ~/dockerdata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
命令說明:
- -p 3306:3306:將容器的 3306 端口映射到主機的 3306 端口。
- -v $PWD/conf:/etc/mysql/conf.d:將主機當前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf采呐。
- -v $PWD/logs:/logs:將主機當前目錄下的 logs 目錄掛載到容器的 /logs若锁。
- -v $PWD/data:/var/lib/mysql :將主機當前目錄下的data目錄掛載到容器的 /var/lib/mysql 。
- -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用戶的密碼斧吐。
查看容器啟動情況
runoob@runoob:~/mysql$ docker ps
CONTAINER ID IMAGE COMMAND ... PORTS NAMES
21cb89213c93 mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql