Docker 容器化技术介绍(七) 之 Docker 应用部署

Docker 容器化技术介绍(一) 之 虚拟化技术

Docker 容器化技术介绍(二) 之 Docker 简介

Docker 容器化技术介绍(三) 之 Docker 组件

Docker 容器化技术介绍(四) 之 Docker的安装与启动

Docker 容器化技术介绍(五) 之 Docker 镜像操作

Docker 容器化技术介绍(六) 之 Docker 容器操作

Docker 容器化技术介绍(七) 之 Docker 应用部署

Docker 容器化技术介绍(八) 之 Docker 备份与迁移


1 MySql 部署

拉取镜像

docker pull mysql

[root@bogon home]# docker pull mysql
Using default tag: latest
Trying to pull repository docker.io/library/mysql ... 
latest: Pulling from docker.io/library/mysql
be8881be8156: Already exists 
c3995dabd1d7: Pull complete 
9931fdda3586: Pull complete 
bb1b6b6eff6a: Pull complete 
a65f125fa718: Pull complete 
2d9f8dd09be2: Pull complete 
37b912cb2afe: Pull complete 
54242fcd8eaa: Pull complete 
0a9d4d211511: Pull complete 
270ae5bd02c2: Pull complete 
9b55b8e72e70: Pull complete 
68083f7985cd: Pull complete 
Digest: sha256:d39a8ab7679df309e7eff6ddba434ad5747cc2a2acee2d7c60d8221c9acedcad
Status: Downloaded newer image for docker.io/mysql:latest

查看拉取下拉的镜像

[root@bogon home]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql     latest              29e0ae3b69b9        9 days ago          484 MB
docker.io/centos    latest              5182e96772bf        2 weeks ago         200 MB
docker.io/nginx     latest              c82521676580        4 weeks ago         109 MB

通过镜像创建容器

docker run -di --name=th_docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql
[root@bogon home]# docker run -di --name=th_docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql
289582afa5ad9a04c99020bd0aa9360fa747e11862c39f4633de106ab38e3d56
[root@bogon home]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
289582afa5ad        mysql               "docker-entrypoint..."   8 seconds ago       Up 7 seconds        33060/tcp, 0.0.0.0:33306->3306/tcp   th_docker_mysql

-p 代表端口映射,格式为 宿主机映射端口:容器运行端口

-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码

登录容器

docker exec -it th_docker_mysql /bin/bash

[root@bogon home]# docker exec -it th_docker_mysql /bin/bash
root@289582afa5ad:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.12 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> status
--------------
mysql  Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:		10
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		8.0.12 MySQL Community Server - GPL
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	latin1
Conn.  characterset:	latin1
UNIX socket:		/var/run/mysqld/mysqld.sock
Uptime:			4 min 22 sec

Threads: 2  Questions: 13  Slow queries: 0  Opens: 110  Flush tables: 2  Open tables: 86  Queries per second avg: 0.049
--------------

同样我们也可以使用 mysql 的客户端软件去连接 mysql

注意 docker 中安装的最新的 mysql 版本是 8.0.12 版本,具体的版本信息和获取不同版本的方式,可以在 docker hub 上进行查看

2 Tomcat 部署

  • 拉取镜像

docker pull tomcat

[root@bogon home]# docker pull tomcat
Using default tag: latest
Trying to pull repository docker.io/library/tomcat ... 
latest: Pulling from docker.io/library/tomcat
55cbf04beb70: Pull complete 
1607093a898c: Pull complete 
9a8ea045c926: Pull complete 
1290813abd9d: Pull complete 
8a6b982ad6d7: Pull complete 
abb029e68402: Pull complete 
d068d0a738e5: Pull complete 
42ee47bb0c52: Pull complete 
ae9c861aed25: Pull complete 
60bba9d0dc8d: Pull complete 
091c11d70257: Pull complete 
869034383fc7: Pull complete 
Digest: sha256:eab533908d6c7760a84a5edbb4490b648484941dfa708a1c5f4286db8caab825
Status: Downloaded newer image for docker.io/tomcat:latest
  • 创建容器
docker run -di --name=th_docker_tomcat -p 8099:8080 -v /usr/local/webapps/:/usr/local/tomcat/webapps tomcat

-p : 指定端口映射

-v: 指定目录映射

  • 部署应用

将应用程序部署到宿主机的/usr/local/webapps/目录下 , 然后进行访问

3 Nginx 部署

  • 拉取镜像

docker pull nginx

  • 创建容器
docker run -di --name=th_docker_nginx -p 80:80 nginx
[root@bogon home]# docker run -di --name=th_docker_nginx -p 80:80 nginx
5de5bd34482322789ea7bc51e54cd26cf88ae5fc0e2ede762f3c196e6bf3083a

访问容器,这里 ip 映射为宿主机的ip,直接通过宿主机的 ip 就可以访问

注: 容器中的 nginx 的配置文件存储于/etc/nginx 目录下,所以要进行反向代理以及负载均衡的配置可以上/etc/nginx 目录下找到对应的配置文件然后 做更改. 如果在容器中没有办法进行修改,那么我们可以将其容器中的配置文件拷贝到宿主机上进行修改,然后在将修改后的文件拷贝到容器中

4 Redis 部署

  • 拉取镜像

docker pull redis

[root@bogon home]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ... 
latest: Pulling from docker.io/library/redis
be8881be8156: Already exists 
d6f5ea773ca3: Pull complete 
735cc65c0db4: Pull complete 
787dddf99946: Pull complete 
0733799a7c0a: Pull complete 
6d250f04811a: Pull complete 
Digest: sha256:858b1677143e9f8455821881115e276f6177221de1c663d0abef9b2fda02d065
Status: Downloaded newer image for docker.io/redis:latest
  • 创建容器

docker run -di --name=th_docker_redis -p 6379:6379 redis

[root@bogon home]# docker run -di --name=th_docker_redis -p 6379:6379 redis
bff4ff3bd48a8d46d0c7035b4912b532350bea277cee407c59e22f093575a536

通过 redis 客户端就可以直接连容器中的 redis了

  • IP 和端口映射查看
[root@bogon home]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                                NAMES
bff4ff3bd48a        redis               "docker-entrypoint..."   12 hours ago        Up 12 hours                 0.0.0.0:6379->6379/tcp               th_docker_redis
7201b7a695c1        tomcat              "catalina.sh run"        12 hours ago        Up 12 hours                 0.0.0.0:8099->8080/tcp               th_docker_tomcat
289582afa5ad        mysql               "docker-entrypoint..."   12 hours ago        Up 12 hours                 33060/tcp, 0.0.0.0:33306->3306/tcp   th_docker_mysql
[root@bogon home]#

猜你喜欢

转载自blog.csdn.net/ternence_hsu/article/details/82026076