Docker02 基本命令、开发环境搭建、docker安装nginx
1 基本命令
1.1 docker相关
centos6.5 安装docker环境
》sudo yum install -y http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
》sudo yum install -y docker-io
docker –version -> 查看docker版本
service docker status -> 查看docker状态
service docker start -> 启动docker
service docker restart -> 重启docker
1.2 镜像相关
docker search name[ : tag ] -> 获取镜像。如不显式的指定TAG,则默认选择latest标签。
docker pull name -> 拉取镜像
docker images -> 查看所有拉取下来的镜像
docker inspect IMAGE_ID -> 查看镜像详细信息
docker rmi IMAGE -> 删除镜像【PS: IMAGE可以为标签或ID。使用镜像ID来删除时,会先尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。】
坑01:当有该镜像创建的容器存在时,镜像文件默认是无法被删除的; 可以利用 docker ps -a 查看容器列表
技巧02:如果有容器存在,先用 docker rm CONTAINER_ID 删除容器,在进行镜像删除操作
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG] -> 基于已有镜像的容器创建镜像
》OPTIONS -> 参数信息
-a xxx <-> --author="xxx" -> 作者信息 -m xxx <-> --message="xxx" -> 提交信息 -p true <-> --pause=true -> 提交时暂停容器运行
》CONTAINER -> 基于那个容器的容器ID
》REPOSITORY -> 创建的镜像名成,后面的TAG表示创建的镜像的标签
docker save -o 压缩包保存名 REPOSITORY:TAG -> 将一个镜像进行打包
》REPOSITORY -> 待打包的镜像名称,后面的TAG表示创建的镜像的标签
docker load –input 压缩包保存名 -> 从导出的文件中重新载入镜像
cat 镜像压缩包 | docker import -REPOSITORY:TAG -> 将一个压缩文件导入,使之成为一个镜像
》REPOSITORY -> 生成的镜像名称,后面的TAG表示创建的镜像的标签
docker push NAME[:TAG] -> 上传镜像到仓库,默认上传到DockerHub官方仓库。第一次使用必须要先登录。
2 开发环境搭建
说明:本博文基于 64位centos6.5 的虚拟机进行搭建的,centos6.5环境搭建
》sudo yum install -y http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm 》sudo yum install -y docker-io
2.1 查看版本
docker --version
2.2 docker启动失败
》解决办法:安装一个依赖后重启即可
yum install device-mapper-event-libs
3 docker安装ngxin
3.1 搜索镜像
docker search nginx
3.2 拉取镜像
docker search nginx
3.3 查看镜像列表
docker images
3.4 查看镜像信息
docker inspect IMAGE_ID
3.5 创建并运行容器
技巧01:这个nginx其实就是镜像的名称【即:images列表中的REPOSITORY字段值】
技巧02:-p -> 做端口映射,将nginx容器的80端口映射到虚拟主机的8082端口,目的是访问虚拟主机的8082端口时就相当于访问docker容器的80端口
docker run -p 8082:80 -d nginx
3.6 查看容器列表
docker ps -a
技巧01:docker ps -a 插叙的是所有的容器(包括启动和没有启动的容器),之查看启动的容器用 docker ps
3.7 访问nginx主页
技巧01:虽然访问的是虚拟机的IP+PORT,但是实际上访问的是docker安装的nginx服务器;因为在利用docker创建nginx容器的时候我们进行一个端口映射
坑02:由于本博文用的时虚拟主机,所以必须关掉虚拟主机的防火墙后物理主机才可以访问虚拟主机【如果开发者直接在物理机上安装的docker就无需这一步,直接利用 127.0.0.1:8082 就可以成功访问nginx容器的80端口啦】
IP地址应该是http://192.168.233.136,写错啦
》技巧03:防火墙相关命令
service iptables status -> 查看防火墙状态 service iptables start -> 启动防火墙 service iptables stop -> 关闭防火墙
关闭防火墙后的访问效果