docker
一、安装
1.1 安装
docker现在分为社区版和企业版
Ubuntu下的安装:apt-get install docker.ce | docker.ee
ce就是社区版本
ee就是企业版本需要付费使用
io是以前的老版本
我们就使用社区版本或者以前的版本就好了
agt-get install docker.io
1.2 查看信息
docker version
docker info
1.3 查询镜像
docker search 《linux名字》
带有officetal 可以放心的使用
1.4 获取镜像
根据上一步得到的名字进行下载镜像
docker pull centos
因为docker hub的网站在国外,下载速度很慢 ,我们可以使用国内的镜像站,这样以后速度就变得很快了
vi /etc/docker/daemon.json#默认文件是不存在 { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
二、使用
2.1 查看本地镜像
上面在docker hub获取的各种镜像,使用下面命令可以看到
docker images
2.2 镜像的使用
2.2.1 以交互的模式运行镜像
参数:
-i 交互式运行
-t 启动一个终端
docker run -it centos /bin/bash
2.2.2 后台运行docker
参数:
-d Detached mode 分离模式,在后台运行
docker run -d centos /bin/bash
2.2.3 查看docker状态
docker ps 正在运行的容器
docker ps -a 所有的docker
2.2.4 进入正在运行的docker
id 根据 docker ps 查看
docker exec -it <id> /bin/bash
2.2.5 创建权限为最高的容器
默认的容器创建起来,其权限并不是真正有root权限的,需要在run后面加上一个参数 --prileage。这样就拥有了最高权限了。
docker run -d --privileged --net none --name centos7 f7d3e902e9bd /bin/bash
2.3 容器的管理
2.3.1 启动、停止、重启
docker start <id> docker stop <id> docker restart <id> id根据docker ps -a查看
docker kill <id>
和stop的区别,kill是强制杀死。stop 发送一个信号,让容器自己执行,保护一些进程,当一定时间内不停止就kill -9
2.3.2 删除容器
docker rm <contain id> <contain id>
docker rm -f <contain id> 强制删除,不管是否在运行
三、制作image的两种方法
方法一:docker commit 保存container状态到image后,然后生成对应的镜像
方法二:docker build 使用dockerfile自动化制作image
3.1 commit 制作镜像
1.运行一个容器 并安装一个软件 docker run -it centos /bin/bash yum install nmap-ncat -y 查询是否安装成功: rpm -qa nmap-ncat 2. 根据容器当前的状态,制作一个image 语法:docker commit <id> <centos:tag> sudo docker commit b18cbebf1749 centos:nmap-ncat
查看下多了一个镜像:
运行新镜像并查看是否安装了nmap
dell@djz:~$ sudo docker run -it centos:nmap-ncat /bin/bash [root@42ed7a682638 /]# rpm -qa nmap-ncat nmap-ncat-6.40-7.el7.x86_64
3.2 docker bulid制作方法
1.在本地创建工作目录 mkdir /dockerbuild cd /dockerbuild touch Dockerfile 2.编辑Dockerfile文件 dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖。 FROM centos
MAINTAINER userabc <userabc@qq.com>
RUN yum -y install httpd
ADD start.sh /user/local/bin/start.sh
ADD index.html /var/www/html/index.html
#ADD是将文件《src》拷贝到容器的文件系统里面去
所有拷贝进去的文件权限是0755,uid与gid都为0
创建脚本文件与web页面
echo "/usr/sbin/httpd -DFORGEROUND" >start.sh chmod a+x start.sh echo "docker image build test" > index.hetml
最后一步在当前的路径下执行命令:
docker build -t centos:httpd .
3.3 docker image发布
3.3.1 方法1 save imag To Tarball
语法:docker save -o 导出的镜像名.tar 本地的镜像名
docker save -o centos:nmap-ncat-docker-imag.tar centos:nmap-ncat
在本路径下 ls 就能看到
后期使用
docker load -i 镜像名字。tar
3.3.2 导出到外网上的docker hub上
四、网络模式
4.1 独立IP
使用pipwork来指定工作:
ifconfig br0 192.168.1.254
pipework br0 -i eth0 65f2d9157ba1 192.168.1.231/24@192.168.1.1
五、工作案列
dell服务器,部署docker,使用桥接模式,这样就可以复用docker了“