Docker数据管理与网络通信的使用

2020-06-17 07:14:32易采站长站整理


[root@localhost apache]# echo "asd" >index.html
[root@localhost apache]# ls
Dockerfile index.html run.sh

5.使用Dockerfile生成镜像

编写完成Dockerfile及相关内容之后,可以通过docker build 命令来创建镜像。

docker build 【选项】 路径

使用方才编写的dockerfile自动生成镜像


[root@localhost apache]# docker build -t httpd:centos .

在自动生成镜像的命令指定镜像后,一定不要忘记写新生成镜像的存放路径,也就是空格后的一个”.”代表当前路径,否则会报错。

6.使用新的镜像运行容器

将新生成的镜像加载到容器中运行


[root@localhost /]# docker run -d -p 12345:80 httpd:centos

ee9adf324443b006ead23f2d9c71f86d1a4eb73358fb684ee3a2d058a0ac4243

[root@localhost apache]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99e9234cefe5 httpd:centos "/run.sh" 8 seconds ago Up 7 seconds 0.0.0.0:12345->80/tcp youthful_lumiere
dfbe3a15f462 docker.io/networkboot/dhcpd "/entrypoint.sh /b..." 56 minutes ago Up 53 minutes determined_dubinsky

//使用新生成的镜像加载到容器中运行
//“-p”选项实现从本地端口12345到容器中80端口的映射

用浏览器访问网页

二.Docker的数据管理

在Docker中,为了方便查看容器内产生的数据或者将多个容器之间的数据实现共享,会涉及容器的数据管理操作。管理Docker容器中的数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(Data Volumes Containers)。

(1)数据卷

数据卷是一个供容器使用的特殊目录,位于容器中,可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像.从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作。

1.创建数据卷


[root@localhost /]# docker run -d -v /data1 -v /data2 --name web httpd:centos
4944c63124d2f96bedd78b4016e6d96e464089626e97b913b06ec888e7ab8f65


[root@localhost /]# docker exec -it web /bin/bash 进入容器可以看到已经和宿主机一样了
[root@4944c63124d2 /]# ls
anaconda-post.log boot data2 etc lib media opt root run.sh srv tmp var
bin data1 dev home lib64 mnt proc run sbin sys usr
[root@4944c63124d2 /]#

(2)挂载主机目录作为数据卷

例如


[root@localhost /]# docker run -d -v /var/www:/xws --name web-1 httpd:centos