镜像:
用来创建容器
Rigistry 镜像仓库,也叫DockerHub.
获取镜像:
获取镜像列表
sudo docker images
拉取镜像
ubuntu
sudo docker pull ubuntu
拉取fedora 指定版本
sudo docker pull fedora:latest
在dockerhub查找镜像
sudo docker search puppet
构建制作镜像.
docker自带 docker commit
dockerfile (推荐)封装好的docker build Dockerfile
为了能正常发布和共享镜像,需要上传到docker hub,需要注册docker hub账号
测试账号是否可用.有返回信息
sudo docker login
使用commit创建镜像
创建新容器
sudo docker run -i -t ubuntu /bin/bash
在容器中安装Apache
apt-get -yqq update
apt-get -y install apache2
安装完,退出
exit
查看刚刚创建的容器的ID
sudo docker ps -l -q
使用commit提交该容器 仓库/镜像名
sudo docker commit 812c25b695ae dfy_image/dfy_image01
带参数提交方式:
sudo docker commit -m="A new image" --author="dfy" 812c25b695ae dfy_image/dfy_image01:webserver
-m 新镜像的提交信息
--author 作者信息
:webserver 标签
查看提交的镜像
sudo docker images dfy_image/dfy_image01
查看镜像的详细信息
sudo docker inspect dfy_image/dfy_image01
使用提交的镜像运行一个容器
sudo docker run -i -t dfy_image/dfy_image01 /bin/bash
Dockerfile(推荐):
使用命令: Dockerfile + docker build
目标: 创建一个简单web服务器的Docker镜像
初始化Dockerfile
创建文件夹,以此作为构建环境
mkdir dfy_web
cd dfy_web
创建空的Dockerfile
touch Dockerfile
指令:
指令字母全大写
指令按照顺序从上到下执行
每条指令会创建一个新的镜像并提交.
基于ubuntu创建
FROM ubuntu
设置镜像作者信息和邮件地址
MAINTAINWER dfy "dongfangyu@huawei.com"
更新apt
RUN apt-get update
安装nginx包
RUN apt-get install -y nginx
创建index.html文件
RUN echo 'Hi,i am your container' /user/share/nginx/html/index.html/index
默认RUN在shell执行,如果不希望在shell中,可以用以下数组格式
RUN ["spt-get", "install", "-y","nginx"]
设置应用程序会使用容器的80端口
EXPOSE 80
# Version: 0.0.1
FROM ubuntu
MAINTAINWER dfy "dongfangyu@huawei.com"
RUN apt-get update
RUN apt-get install -y nginx
RUN echo 'Hi,i am your container' /user/share/nginx/html/index.html/index
EXPOSE 80
在创建镜像的时候遇到问题
FROM 命令不存在.
就是说不能利用Dockerfile创建镜像.
所以下面只记录原理和实现原理描述.
查看已经创建好的镜像
docker images
查看某个镜像的信息
sudo docker images dfy_test01
镜像构建历史
sudo docker history dfy_test01
通过构建好的镜像运行容器时,可以控制公开那些网络端口给宿主机(在那台电脑上运行的docker),
提供这些端口给外部访问.
可以选择49153 - 65535 之间的端口号来映射到容器中的80端口
通过任务管理器查看端口
docker ps -l
查看端口映射
sudo docker port 容器ID 80
容器的端口可以映射到宿主机的指定端口 如 80>80 80>8080
容器端口可以绑定到宿主机Ip上 80 > 127.0.0.1
查看宿主机ip地址
ifconfig
ip addr
访问容器中的web内容
curl localhost:49154
VOLUME 容器添加卷
定位:一个特定的目录
特点:
存在于一个或者多个容器
在容器间共享和重用
可以不共享
对卷的修改是立即生效的
一直存在的
总结: 存数据,数据库,日志,代码
删除daockerfile创建的镜像:
sudo docker rmi dfy_test01