博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker SSH+NGHINX+MYSQL
阅读量:6688 次
发布时间:2019-06-25

本文共 2564 字,大约阅读时间需要 8 分钟。

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

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

docker run -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

  • -v pwd/www:/www,将当前路径下的www目录设置为/www,和server配置的路径对应
  • -v pwd/config:/etc/nginx/sites-enabledserver文件的本地路径,映射到docker容器的nginx配置路径

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

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

转载于:https://www.cnblogs.com/baxk/p/5166053.html

你可能感兴趣的文章
apache2 以及https证书配置
查看>>
JVM参数
查看>>
(技术文章翻译)HTTP消息(一)
查看>>
MongoDB实战-电子书
查看>>
ubuntu_国内加速源
查看>>
struts1 ActionForm的初步简单使用
查看>>
Page Peel View
查看>>
PushBack Animation View
查看>>
MCMenuViewController
查看>>
zabbix grafana
查看>>
jquery验证器
查看>>
关于 Integer
查看>>
java的10大设计原则
查看>>
Python爬虫实战(1):爬取Drupal论坛帖子列表
查看>>
卸载已经安装的rpm包
查看>>
Postgres study reminder ,lesson 1
查看>>
Explain中的filtered列
查看>>
趣图:当计算机可以更新的时候
查看>>
贝格尔编排法-java
查看>>
retain、assign、strong、weak
查看>>