最近在研究docker的使用,做下总结,希望对能看到的人有所帮助。
资料推荐:
菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html ,命令还算是比较全。可以快速看下。
1、docker安装
我是跟着菜鸟教程安装的教程进行安装。系统是centos
2、docker搭建nginx,可数据共享
(1) 拉取镜像 : docker pull centos //拉取最近的centos镜像文件
查看目前有的镜像:docker images 会找到你刚才获取的镜像
(2)在宿主主机(物理机)下载需要的nginx,并且准备好存放nginx配置的文件目录
我选择把数据共享的目录创建到了/home/docker下,html放静态文件,nginx放配置信息
(3)进入容器
docker run -it -v /home/docker:/home/docker centos /bin/bash
-t让docker分配一个伪终端并绑定到容器的标准输入上,
-i则让容器的标准输入保持打开.
-v 挂在宿主主机的目录。实现数据共享。神不神奇。/home/docker:/home/docker 【冒号前是物理主机的文件路径,冒号后是docker对应的路径】没有会自动创建。
(4)在docker中安装nginx
因为是纯净的centos操作系统。没有任何命令。需要装gcc++等一大堆。自行安装就好
yum -y install gcc-c++ pcre-devel zlib-devel
yum -y install gcc automake autoconf libtool make
编译完成后检查下
(4)修改nginx的配置为动态加载
我们对/usr/local/nignx/conf下的nginx.conf增加了【include /home/docker/nginx/*.conf;】以方便动态添加
(5)退出容器,并提交镜像
退出的时候一定要记住这个编号【c38a7bef31c5】,为后面提交镜像做准备
提交镜像文件
docker commit -m 'test-nginx' c38a7bef31c5 centos:test-nginx
commit -m 'test-nginx' 是提交内容描述
c38a7bef31c5 容器编号
centos:test-nginx 提交后镜像的名字
此时一个简单的docker就创建好了
(6) 创建html文件和nginx配置文件
创建一个html文件,内容为hello2,world
创建一个test1.conf的配置文件,端口指向了8001
(7)以守护进程的方式启动容器
docker run -itd --name test1_nignx -v /home/docker:/home/docker -p 8001:8001 centos:test-nginx /bin/bash 这里多加了一个d,用以守护进程方式启动
(8)启动容器中的nginx
docker exec -it 5ebc8c2e4aef /usr/local/nginx/sbin/nginx (在编译nginx的时候把目录写成了nignx,搞了半个小时才发现)
(9)浏览