基于容器制作镜像

1、首先是拉取一个镜像,并启动之。我这里使用busybox作为测试

[root@ELK-chaofeng08 ~]# docker container run --rm -it --name bbox1 busybox
/ # httpd -h
httpd: option requires an argument -- h
BusyBox v1.30.1 (2019-02-14 18:58:02 UTC) multi-call binary.

Usage: httpd [-ifv[v]] [-c CONFFILE] [-p [IP:]PORT] [-u USER[:GRP]] [-r REALM] [-h HOME]
or httpd -d/-e/-m STRING

Listen for incoming HTTP requests

    -i        Inetd mode
    -f        Don't daemonize
    -v[v]        Verbose
    -p [IP:]PORT    Bind to IP:PORT (default *:80)
    -u USER[:GRP]    Set uid/gid after binding to port
    -r REALM    Authentication Realm for Basic Authentication
    -h HOME        Home directory (default .)
    -c FILE        Configuration file (default {/etc,HOME}/httpd.conf)
    -m STRING    MD5 crypt STRING
    -e STRING    HTML encode STRING
    -d STRING    URL decode STRING
/ # mkdir -pv /data/httpd
created directory: '/data/'
created directory: '/data/httpd/'
/ # echo "This is the busybox" > /data/httpd/index.html

busybox镜像一启动默认是进入“sh”的shell交互终端,这是因为该busybox默认启动就是运行“sh”命令。我们想一启动这个镜像就可以运行httpd程序。

2、我们再打开一个新的终端,然后制作镜像,修改默认运行的命令

上面这个图片中的-h参数解释的不太正确,再纠正一下:

3、查看制作的镜像

3.1、如果你没有打标签,可以参考这个图片

 4、我们启动一下这个新的镜像

看不到什么效果,因此我们再打开一个终端看看效果

5、查看此镜像的进程

发现我们刚刚制作的新的镜像已经启动了,并且默认运行的命令是“httpd -f -h /data/httpd”

6、我们看看这个image的ip是什么

使用这个命令查看image的详细信息

[root@ELK-chaofeng08 ~]# docker inspect db8c95fc5ba8

然后在显示的内容的最下面,我们可以看到ip

7、访问一下看看效果

很不错,制作成功了。

 最后我们还可以将此新的自己制作的镜像放在dockerhub上供别人参考

 

转载于:https://www.cnblogs.com/FengGeBlog/p/10565829.html

1. 安装Docker 在CentOS上安装Docker,可以使用官方的安装脚本。打开终端并运行以下命令: ``` $ curl -fsSL https://get.docker.com/ | sh ``` 如果您的系统上没有curl,请先安装它: ``` $ yum install curl ``` 2. 下载PostgreSQL的Dockerfile 我们可以从官方的Docker Hub上下载PostgreSQL的Dockerfile。使用以下命令: ``` $ curl -O https://raw.githubusercontent.com/docker-library/postgres/master/13/alpine/Dockerfile ``` 3. 编辑Dockerfile 使用vim或nano等编辑器打开下载下来的Dockerfile文件,进行以下配置: ``` FROM centos:latest ENV POSTGRES_USER postgres ENV POSTGRES_PASSWORD postgres ENV POSTGRES_DB postgres RUN yum update -y && \ yum install -y postgresql-server postgresql-contrib && \ yum clean all USER postgres RUN initdb --encoding=UTF8 --locale=C -D /var/lib/pgsql/data && \ pg_ctl -D /var/lib/pgsql/data -l logfile start && \ psql --command "CREATE USER postgres WITH SUPERUSER PASSWORD 'postgres';" && \ createdb -O postgres postgres VOLUME ["/var/lib/pgsql/data"] EXPOSE 5432 CMD ["postgres", "-D", "/var/lib/pgsql/data", "-c", "config_file=/var/lib/pgsql/data/postgresql.conf"] ``` 4. 构建Docker镜像 使用以下命令构建Docker镜像: ``` $ docker build -t my_postgresql . ``` 这将构建一个名为“my_postgresql”的新Docker镜像。 5. 运行PostgreSQL容器 使用以下命令运行PostgreSQL容器: ``` $ docker run -d -p 5432:5432 --name my_postgresql_container my_postgresql ``` 这将创建一个名为“my_postgresql_container”的新容器,并将容器的端口5432映射到主机的端口5432。 6. 测试PostgreSQL容器 为了测试新的PostgreSQL容器,请使用以下命令: ``` $ psql -h localhost -U postgres -d postgres ``` 您应该现在可以通过psql连接到PostgreSQL容器。 现在您已经成功地使用Docker创建了一个基于CentOS的PostgreSQL镜像,并运行了一个新的PostgreSQL容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值