目录
一、制作镜像的办法
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 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、最后返回宿主机终端窗口