docker启动多任务容器

本文介绍如何从 CentOS 6 创建 Docker 镜像,包括安装必要的软件包如 OpenSSH、MySQL 和 Nginx,并配置 supervisor 进行服务管理。镜像还包括 MySQL 的远程访问配置及 SSH 服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、添加创建镜像的配置文件
      vim Dockerfile
      输入以下内容:
FROM centos:centos6

MAINTAINER xxx"xxx@honghe-tech.com"

RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN yum install -y openssh-server sudo mysql-server mysql supervisor nginx
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

RUN useradd admin
RUN echo "admin:admin" | chpasswd
RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers

RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN mkdir /var/run/sshd

RUN /etc/init.d/mysqld start &&\
    mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&\
    mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&\
    mysql -u root -pletmein -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 启动 PostgreSQL 容器 为了使用 Docker 启动 PostgreSQL 容器,可以按照如下方法操作: 确认 PostgreSQL 容器正在运行是一个重要的前提条件。通过执行 `docker ps -a` 可查看当前所有的容器状态,以此来验证 PostgreSQL 容器是否已经在运行中[^2]。 准备宿主机存储路径也是必要的一步。创建并设置权限给定目录用于持久化数据库文件,例如 `/data1/postgresql12`,这可以通过下面的命令完成: ```bash mkdir -p /data1/postgresql12 chown -R 1001:1001 /data1/postgresql12 ``` 上述命令确保了 PostgreSQL 运行所需的文件夹存在,并赋予正确的读写权限以便于后续的数据保存和访问[^4]。 启动 PostgreSQL 容器的具体方式之一是利用官方镜像配合自定义配置项来进行部署。对于单实例的情况来说,可以直接拉取最新版本的 PostgreSQL 镜像并通过指定环境变量的方式简化初始化过程;而对于更复杂的场景比如主从复制,则可能需要用到多个组合文件如 `docker-compose.yml` 来描述服务之间的关系以及网络配置等信息[^3]。 一旦完成了以上准备工作之后,就可以正式开始启动 PostgreSQL 容器了。如果只是简单地想要测试或开发用途的话,那么只需要一条简单的指令即可完成整个流程: ```bash docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres ``` 此命令将会下载最新的官方 PostgreSQL 映像(如果没有本地缓存),并且以后台模式启动一个新的名为 `some-postgres` 的容器,在其中设置了默认超级用户的密码为 `mysecretpassword`[^1]。 最后要提到的是连接至已启动成功的 PostgreSQL 实例上进行交互式查询或其他管理任务。此时可借助 `docker exec` 命令进入目标容器内部再调用内置工具 `psql` 完成登录动作,具体形式如下所示: ```bash docker exec -it postgresql_5432 psql -U postgres ``` 这里假设之前已经有一个叫做 `postgresql_5432` 正常运作着的服务实例可供接入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值