docker的数据管理和端口映射

Docker数据管理和端口映射

这里接着上次
传送门

  • 配置docker数据卷
  • 配置docekr数据卷容器
  • 配置端口映射转发容器内部服务

一、 配置docker数据卷

1、 创建数据卷目录名字是centos7.201
[[email protected] ~]# docker run -d --name centos7.201 -v /data1 hub.c.163.com/public/centos:7.2.1511

2、 查看创建的数据卷
默认容器数据卷存放的位置
[[email protected] ~]# cd /var/lib/docker/volumes/

docker的数据管理和端口映射
3、 登录容器查看创建的数据卷
宿主机创建一个100M的文件拷贝到创建的数据卷中,再创建容器使用数据卷,查看使用数据卷
1)创建测试文件
[[email protected] ~]# dd if=/dev/zero of=./1.iso bs=10M count=10
2)将测试文件拷贝到数据卷中
[[email protected] ~]# cp 1.iso /var/lib/docker/volumes/f5739693be73f249607f146bd4f32f21ba0b1007ef1f4a2dba37380e1d0bc46c/_data/

3)登录到centos7.201容器中查看
[[email protected] ~]# docker exec -it centos7.201 /bin/bash

docker的数据管理和端口映射

二、 配置docker数据卷容器

1、 创建数据卷容器
[[email protected] ~]# docker run -it -v /date --name dbdatabase hub.c.163.com/public/centos:7.2.1511 /bin/bash
2、 创建容器连接到数据卷容器上
[[email protected] ~]# docker run -it --volumes-from dbdatabase --name db1 hub.c.163.com/public/centos:7.2.1511 /bin/bash
3、 验证dbdatabase数据卷容器中的容器
在dbdatabase中写入数据1.txt,在容器db1中写入数据2.txt,在db2中查看,如果都有,就验证成功

1) 写入数据
[[email protected] ~]# touch 1.txt
[[email protected] ~]# cp 1.txt /var/lib/docker/volumes/95c88a33df6518321ba19591c701c412847dabc1a151d10b0b548cce8dd74e44/_data/

2) 登录数据卷容器查看
[[email protected] ~]# docker exec -it dbdatabase /bin/bash
[[email protected] /]# ls date/
1.txt

3) 在db1登录写入数据,在db2中查看数据共享
[[email protected] ~]# docker exec -it db1 /bin/bash
[[email protected] date]# touch 2.txt
[[email protected] date]# ls
1.txt 2.txt

4) 创建容器db2,在db2中查看数据共享
[[email protected] ~]# docker run -it --volumes-from dbdatabase --name db2 hub.c.163.com/public/centos:7.2.1511 /bin/bash
[[email protected] /]# ls date/

四、 配置端口映射转发容器内部服务

1、 配置容器端口映射,映射到随机端口上
创建名为ssh容器映射端口
[[email protected] ~]# docker run -d -P --name ssh hub.c.163.com/public/centos:7.2.1511

2、 将容器端口映射到宿主机指定的端口上,映射端口范围是49000到49900
[[email protected] ~]# docker run -d -p 49000:22 --name ssh01 hub.c.163.com/public/centos:7.2.1511

3、 将容器的端口映射到宿主机指定的IP地址和端口上
[[email protected] ~]# docker run -d -p 192.168.100.10:2222:22 --name ssh02 hub.c.163.com/public/centos:7.2.1511

4、 将容器指定的端口映射到宿主机IP地址的任意端口上
[[email protected] ~]# docker run -d -p 192.168.100.10::22 --name ssh03 hub.c.163.com/public/centos:7.2.1511

5、 将容器特定的协议端口映射到宿主机指定的IP地址和端口上(这里只有22号端口)
[[email protected] ~]# docker run -d -p 192.168.100.10:222:22/tcp --name ssh04 hub.c.163.com/public/centos:7.2.1511

6、 查看端口映射信息
[[email protected] ~]# docker port 加容器名

五、 docker容器部署mysql服务器并发布

1、 宿主机联网开启路由功能
[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[[email protected] ~]# sysctl -p
2、 创建安装mysql容器并发布端口号3306
[[email protected] ~]# docker run -d -p 192.168.100.10:3306:3306/tcp --name mysql
hub.c.163.com/public/centos:6.7-tools
192.168.100.10:3306->3306/tcp mysql
3、 登录到mysql容器
[[email protected] ~]# docker start mysql
[[email protected] ~]# docker exec -it mysql /bin/bash

4、 在容器mysql中安装mysql服务
[[email protected] /]# yum -y install mysql mysql.servver
5、 启动mysql服务
[[email protected] /]# service mysqld start
6、 设置mysql登录密码
[[email protected] /]# mysqladmin -uroot password [email protected]
7、 授权特定的IP地址和账户密码登录容器中的mysql
mysql> grant all on . to ‘tom’@‘192.168.100.10’ identified by ‘[email protected]’;
8、 设置用宿主机登录发布的容器3306端口
宿主机安装客户端登录发布的容器
[[email protected] ~]# mysql -h 192.168.100.10 -utom [email protected]

docker的数据管理和端口映射

六、 docker容器部署apache服务并发布

1、 创建容器apache,发布80号端口到宿主机
[[email protected] ~]# docker run -d -p 192.168.100.10:80:80/tcp --name apache hub.c.163.com/public/centos:6.7-tools
2、 登录到apche容器
[[email protected] ~]# docker exec -it apache /bin/bash
3、 安装apche服务
[[email protected] /]# yum -y install httpd
4、 启动服务
[[email protected] /]# service httpd start
5、登录访问查看

docker的数据管理和端口映射