赞
踩
简单创建
[root@VM-16-13-centos ~]# docker run -itd --privileged --name test centos:latest /usr/sbin/init
f42cf8a52f9e22340baad9fb67e590e400642b4e513feedaf9e05d933d402c9d
docker run 表示的是创建容器,
-i 是提供一个交互模式运行容器通常和 -t 搭配使用
-t 为容器分配一个伪终端
-d 后台运行容器返回容器ID
–privileged 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。甚至允许你在docker容器中启动docker容器。比如要在容器里用systemctl做服务管理,必须要root权限!
-name 就是定义一个名字像我定义的名字就是aa
-centos:latest 就是上面图片docker images
实现出来的镜像。重点是这一句 /usr/sbin/init就是给容器一个超级管理员的权限,登入终端是有init负责的。
配合参数创建
docker run -i -t -d -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 --privileged=true -v /root/www:/www centos /usr/sbin/init
上面命令的意思是创建一个docker容易让他后台运行,然后将真机的20,21,80,443,888,8888这五个端口映射到docker容器中去。并且将真机的/root/www文件夹映射到docker容器的/www上去。/usr/sbin/init 意思表示在运行容器的时候,给容器加特权(root
权限),不然容器没有写文件的权限,会导致安装失败。
[root@VM-16-13-centos ~]# docker exec -it test /bin/bash
[root@f42cf8a52f9e /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@f42cf8a52f9e /]#
如果不指定 /bin/bash,容器运行后会自动停止
由于docker中是一个纯净版本,我们首先需要给他升级并且安装必要的软件。(当然不止这些,需要用到的时候再装也行)
yum check-update -y && yum update -y && yum install initscripts screen wget -y
进入后发现没有ifconfig,直接yum安装
# yum install -y net-tools
docker 容器 运行 centos镜像 执行命令(环回ping通www.baidu.com5次)
docker container run centos ping -c 5 www.baidu.com
// 创建一个名为volume-1的数据卷
# docker volume create volume-1
// 在宿主机中,创建的数据卷默认位于/var/lib/docker/volumes目录下
// 基于centos7 并 指定数据卷 创建容器
# docker run -d -it --name=bigscreen -p 8730:8730 -v volume-1:/usr/share/bigscreen centos:7
// :/usr/share/bigscreen 指定数据卷在docker容器中的映射位置
docker ps
docker rm 容器名
docker rmi <image id>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。