docker mysql ssh相互_Docker SSH+NGHINX+MYSQL

1、添加创建镜像的配置文件

vim Dockerfile

输入以下内容:

FROM jdeathe/centos-ssh

MAINTAINER baxk"xxx@honghe-tech.com"

RUN yum install -y openssh-server nginx mysql-server mysql supervisor

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

RUN sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config

RUN sed -i 's/PermitRootLogin no/PermitRootLogin no/g' /etc/ssh/sshd_config

RUN yum -y update

RUN useradd admin

RUN echo "admin:admin" | chpasswd

RUN echo "root:123456" | chpasswd

RUN gpasswd -a admin root

RUN /etc/init.d/mysqld start &&\

mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'root';"&&\

mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'root';"&&\

mysql -u root -proot -e "show databases;"

RUN mkdir -p /var/log/supervisor

COPY supervisord.conf /etc/supervisord.conf

EXPOSE 22 80 3306

CMD ["/usr/bin/supervisord"]

2、添加容器启动的配置文件

vim supervisord.conf

输入以下内容:

#command 标示容器启动时,需要执行的命令

[supervisord]

nodaemon=true

[program:sshd]

command=/usr/sbin/sshd -D

[program:mysqld]

command=/usr/bin/mysqld_safe

[program:nginx]

command=/usr/sbin/nginx

3、创建镜像

docker build -t my_centos .

4、docker run -d --name=my_centos -p 50001:22 -p 50002:3306 -p 8080:80 my_centos

5、通过ssh 登录容器

ssh admin@localhost -p 50001

密码为:admin

6、通过浏览器访问nginx

localhost:8080

7、远程连接容器中的mysql

mysql -h 0.0.0.0 -u root -P 50002 -p

密码为:letmein

# 0.0.0.0 为容器ip地址

通过命令查看容器映射的ip地址

root@xxx-All-Series:~/docker/centos# docker ps -a

CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS                   PORTS                                                                   NAMES

62d473045406        centos_nginx_test2:latest   /usr/bin/supervisord   55 minutes ago      Up 55 minutes             0.0.0.0:49153->22/tcp, 0.0.0.0:49154->3306/tcp, 0.0.0.0:49155->80/tcp   nginx2

docker可以支持把一个宿主机上的目录挂载到镜像里。

通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径

docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64/bin/bash

通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径

默认挂载的路径权限为读写。如果指定为只读可以用:ro

docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64/bin/bash

====================================================================

dockerrun -it -p 80:80 -v `pwd`/logs:/var/log/nginx dockerfile/nginx

这个命令会在当前目录下创建logs目录,存放access.log和error.log

docker run -it -p 80:80 -v `pwd`/www:/www -v `pwd`/config:/etc/nginx/sites-enabled -v `pwd`/logs:/var/log/nginx dockerfile/nginx

-vpwd/www:/www,将当前路径下的www目录设置为/www,和server配置的路径对应

-vpwd/config:/etc/nginx/sites-enabled,server文件的本地路径,映射到docker容器的nginx配置路径

=============================================================================

docker run --rm busybox sh -c 'ls /var/log/*'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值