作者:朱金灿
来源:https://blog.csdn.net/clever101
今天我们再用docker干一些实用的事情,比如部署一个web系统。部署一个web系统需要建一个web服务器,还有需要创建一个数据库服务器,比如mysql,以及一个高速缓存数据库服务器,比如redis。
简单描述一下要干的事就是建三个容器,一个是tomcat服务器,一个是mysql数据库服务器,一个redis服务器。下面具体谈谈怎么干。
- 列出宿主机中所有的镜像,具体是执行命令:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8.5.20 72d2be374029 21 months ago 292MB
redis 3.2.3 e5181bd07b8e 2 years ago 185MB
java 8u111 d23bdf5b1b1b 2 years ago 643MB
mysql 5.7.19 c73c7527c03a 21 months ago 412MB
REPOSITORY表示镜像的内容,TAG表示对应的版本号。
- 在创建的镜像基础上运行tomcat容器,具体是执行命令:
#在宿主机上创建一个和容器的映射目录
# mkdir web_server
#docker run –d --name=web_server --restart=always –p 8080:8080 -v /home/web_server: /usr/local/tomcat/webapps tomcat: 8.5.20
下面详细解释下这个创建web服务器的docker命令。docker run是在已有镜像的基础上运行tomcat容器。-d表示后台运行。--name=web_serve表示你为要运行的容器设定的名字为web_server。--restart=always表示设定容器自动重启。–p 8080:8080表示宿主机和容器进行8080端口映射,就是将容器的8080端口映射为宿主的8080端口,冒号前面的是宿主的端口号,冒号后边的是容器的端口号。-v /home/web_server:/usr/local/tomcat/webapps表示将容器的路径映射为宿主的路径,冒号后面的是容器内部路径,冒号前面是宿主机路径。tomcat: 8.5.20表示已创建的镜像名和版本号,就是从前面docker images命令执行结果中选择的第一个镜像。
至此我们已经创建一个web服务器了。
- 在创建的镜像基础上运行mysql数据库容器,具体是执行命令:
#在宿主机上创建一个和容器的映射目录
# mkdir mysql
#docker run -d –name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --restart=always -v /home/mysql:/var/lib/mysql mysql:5.7.19
下面详细解释下这个创建mysql数据库服务器的docker命令。docker run是在已有镜像的基础上运行tomcat容器。-d表示后台运行。--name=mysql表示你为要运行的容器设定的名字为mysql。--restart=always表示设定容器自动重启。–p 3306:3306表示宿主机和容器进行3306端口映射,就是将容器的3306端口映射为宿主机的3306端口,冒号前面的是宿主机的端口号,冒号后边的是容器的端口号。-e MYSQL_ROOT_PASSWORD=123456表示设置数据库的root用户的密码。-v /home/mysql:/var/lib/mysql是将容器的/var/lib/mysql目录映射为宿主机的/home/mysql目录。mysql:5.7.19表示已创建的镜像名和版本号,就是从前面docker images命令执行结果中选择的镜像。
- 在创建的镜像基础上运行redis容器,具体是执行命令:
#docker run -d --name=redis -p 6379:6379 --restart=always redis:3.2.3
下面详细解释下这个创建mysql数据库服务器的docker命令。docker run是在已有镜像的基础上运行tomcat容器。-d表示后台运行。--name=redis表示你为要运行的容器设定的名字为redis。--restart=always表示设定容器自动重启。–p 6379:6379表示宿主机和容器进行6379端口映射,就是将容器的6379端口映射为宿主机的6379端口,冒号前面的是宿主机的端口号,冒号后边的是容器的端口号。redis:3.2.3表示已创建的镜像名和版本号,就是从前面docker images命令执行结果中选择的镜像。