docker 镜像制作、发布以及命令使用示例

 

目录

一、制作镜像的办法

二、发布镜像示例

三、docker常用命令使用示例


一、制作镜像的办法

1、第一种制作镜像的办法:

(1)此方法必须在容器运行时

(2)制作指定id的容器为指定名字的镜像文件

(3)制作成功的镜像文件会提交到本地Docker镜像库

docker commit -a="xujianjun" -m="add cpp_httpserver" 459af5736ac9 centos_cpp_httpserver:1.0

2、第二种制作镜像的办法:

Dockerfile

FROM centos
MAINTAINER xujianjun<xujianjun229@163.com>

ENV MYPATH /home
WORKDIR $MYPATH
EXPOSE 9000
VOLUME ["/home/volume01","/home/volume02"]
CMD echo $MYPATH
CMD echo "------end------"
CMD /bin/bash

编译镜像指令,注意后面有个点

docker build -f Dockerfile -t cpp_httpserver:5.0 .

二、发布镜像示例

1、登陆DockerHub

docker login -u xujianjun229

2、提交镜像到DockerHub,必须指定标签为xujianjun229/(以下2个指令必须执行)

Docker Hub

docker tag cpp_httpserver:1.0 xujianjun229/cpp_httpserver:1.0
docker push xujianjun229/cpp_httpserver:1.0

三、docker常用命令使用示例

1、 拉取指定名字的镜像

docker pull xujianjun229/cpp_httpserver:1.0

2、删除指定名字的镜像

docker rmi -f xujianjun229/cpp_httpserver:1.0

3、查看所有的镜像

docker images

4、后台方式、交互方式、映射到宿主机8000端口、挂载的宿主机的指定目录,运行 xujianjun229/cpp_httpserver:1.0  镜像

注意端口映射:docker端口默认映射的host是0.0.0.0,所以需要把服务程序的监听地址改为0.0.0.0

参考链接

docker run -d -it -p 8000:9000 -v /media/xujianjun/Others/QingDaoTongChan/GitHubProject/CppDemo/ehttpserver:/home xujianjun229/cpp_httpserver:1.0 /bin/bash

5、查看当前运行的容器

docker ps

 6、查看指定id容器的所有详细信息

docker inspect a3501772ff35

 "Mounts": [
            {
                "Type": "bind",
                "Source": "/media/xujianjun/Others/QingDaoTongChan/GitHubProject/CppDemo/ehttpserver",
                "Destination": "/home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "volume",
                "Name": "c0844264dc977b3a9681e6d7d9f1ea1b4639ed2be9dfd868f7542a3c56d1c7fc",
                "Source": "/var/lib/docker/volumes/c0844264dc977b3a9681e6d7d9f1ea1b4639ed2be9dfd868f7542a3c56d1c7fc/_data",
                "Destination": "/home/volume01",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "volume",
                "Name": "a1deb2a463102c6905af09786588733860ff40525db51dd0021cd2bfdb926588",
                "Source": "/var/lib/docker/volumes/a1deb2a463102c6905af09786588733860ff40525db51dd0021cd2bfdb926588/_data",
                "Destination": "/home/volume02",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],

7、进入指定id容器 当前正在运行的终端

docker attach adf601ba5ae0

8、进入指定id容器 新开一个终端并运行

docker exec -it a3501772ff35 /bin/bash

9、然后在容器内部操作终端运行http程序

./hello_server 9000

10、然后在宿主机浏览器内输入http://localhost:8000/hello

11、然后在容器内部操作终端运行exit将终止容器运行(运行ctrl+p+q按键可以退出容器,但不会中止容器的运行)

exit

12、最后返回宿主机终端窗口

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值