Docker学习之三------容器启动

run命令相当于创建容器并启动容器

挂载数据卷、指定端口

1 容器内挂载卷
docker run -d -P --name web -v /web nginx
-d:后台运行
-P:将容器内的全部端口暴露给主机端口,端口随机分配49000~49900
–name:容器名称
-v:创建数据卷,可以被其它容器共享,可以多次使用、、、 -v /web (容器内的目录)
Docker学习之三------容器启动
查看运行容器以及容器暴露在实机的端口为32768
Docker学习之三------容器启动
登录网页查看
Docker学习之三------容器启动

2)挂载主机目录到容器
docker run -d -p 87:80 -p 70:80 --name web1 -v /web:/web1 nginx
-v /webapp(主机目录):/web1(容器内目录)
-p:指定具体的主机与容器对应的端口,主机端口:容器端口,可以多次使用

Docker学习之三------容器启动
Docker学习之三------容器启动
Docker学习之三------容器启动

docker run -d -p 88:80 --name web2 -v /web2:/web2:ro nginx

ro:只读,默认为rw读写
Docker学习之三------容器启动
Docker学习之三------容器启动

3 挂载容器中的数据卷到新的容器
docker run -d -p 11:80 --name web3 --volumes-from web nginx
–volumes-from web(容器名称)
–volume-from:如果容器中被挂载了数据卷,则该数据卷也会被挂载到当前创建的容器,两个容器共享该数据卷,可以多次使用,可以和 -v 参数同时使用

Docker学习之三------容器启动
验证 : 在web3容器中的/web目录中创建文件,再进入web容器中查看是否/web目录中有a文件
Docker学习之三------容器启动
Docker学习之三------容器启动

4 数据卷备份
sudo docker run --volumes-from web -v $(pwd):/asd --name web4 centos:latest tar cvf /asd/asd.tar /web
将容器web的数据卷/webapp,备份到主机的当前目录

Docker学习之三------容器启动

Docker学习之三------容器启动

5)恢复数据卷
首先需要创建一个带数据卷的容器
docker run -v /asd:/asd --name back nginx
要与恢复的数据卷路径相同
然后创建另一个新的容器,挂载dbdata的容器,并解压备份到其数据卷中
sudo docker run --volumes-from back -v $(pwd):/backup centos:latest tar xvf /backup/asd.tar

Docker学习之三------容器启动
Docker学习之三------容器启动

Docker学习之三------容器启动

查看容器

docker ps :显示状态为运行(up)的容器
docker ps -a:查看主机已经创建了多少个容器
docker ps -qa:只显示容器ID

Docker学习之三------容器启动
Docker学习之三------容器启动

docker top 容器ID或容器名:查看指定容器的进程信息,类似于在容器内部执行top命令
Docker学习之三------容器启动
Docker学习之三------容器启动
查看容器开放的端口

Docker学习之三------容器启动

查看容器设置的环境变量
docker exec 容器ID或者容器名 env
Docker学习之三------容器启动