DOCKER容器的基本使用(一)
环境:主机:装有centos7.2的物理机 I P:192.168.122.1 关闭防火墙selinux状态为disabled
软件:docker-engine-1.10.3-1.el7.centos.x86_64.rpm
docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm
操作:
安装软件 yum install docker-engine-1.10.3-1.el7.centos.x86_64.rpm
docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm
启动 systemctl start docker
查看docker信息 docker version
导入docker镜像 docker load -icentos.tar
查看docker镜像 docker images
运行容器
1> docker run -it--name testrhel7bash 在前台bash交互式运行
#####开启容器并进入交互式界面:ctrl+d 会直接关闭容器退出交互式界面 ctrl+p+q 退出交互式界面但不会关闭容器
2> docker run -d--name test1nginx -d表示打入后台运行
3> docker run -d--namenginx-v index.html:/usr/share/ngin/html/index.html-p8080:80nginx 创建容器-v 将本地的index.html 文件挂载到容器中 -p端口映射 将容器的80端口映射到物理机的8080
可以通过访问物理机的8080端口或容器的IP 来访问容器的nginx
4> docker create --name file -v /tmp/data1:/data1-v /tmp/data2:/data2 ubuntu bash 添加卷容器卷容器可以被调用在新建的容器上作与卷容器相同的挂载
5> dockerrun--rm--volumes-from file -v /tmp/backup:/backup ubuntu tar cf /backup/back.tardata1 创建一个容器,执行将data1打包到/backup/后 删除容器 --volumes-from 调用file容器的挂载 令新容器也有相同的挂载
6> docker run -it --nameubuntu --net host ubuntu bash运行一个容器 --net表示指定容器使用网络为host 这样容器会跟物理机使用相同的网络信息 会开启相同的网络端口 但是会发生资源争抢
7> docker run -it --namevm1 --net none ubuntu bash运行一个容器、网络信息为空 方便自定义配置
对容器vm1的网络配置如下:
ip link add name veth0 type veth peer name veth1 创建容器虚拟网络接口
brctladdif docker0 veth0 将一段接到本地docker0上
ip link setdev veth0 up
ip link setdev veth1 up 开启接口端状态
docker inspect -f '``.`State`.`Pid`' vm1 过滤出容器vm1的Pid为5794
ip netnsadd test添加网络命名空间test
ip netns list 查看列表
ln -s /proc/5794/ns/net/var/run/netns/5794做软连接
ip linkset veth1netns 5794 将虚拟网卡接口veth1添加到5794上
在容器中通过ip addr show可以看到 添加了一个设备veth1
ip netns exec 5794 ip addr add 172.17.0.10/24 dev veth1 在物理机上设置容器VM1的网络地址为172.17.0.10/24
ip netns exec 5794 ip link set veth1 up 启用设备veth1
在容器中查看
容器IP设置成功
docker常用操作:
Docker ps 查看当前正在运行的容器
Dockerps-a 查看所有容器 (包括为运行的容器)
Docker ps-q 查看容器ID
Dockerstop/start test 关闭或打开容器test这里可以使用容器名或者容器ID都可以
Docker logstest查看容器的日志
Dockerattach test 进入容器
Dockerrm test 删除容器
Dockerstop `docker ps -aq` 停止所有容器
Dockerrm`docker ps -aq` 删除所有容器 容器删除前需要先停止
页:
[1]