鏡像:
用來創(chuàng)建容器
Rigistry 鏡像倉庫,也叫DockerHub.
獲取鏡像:
獲取鏡像列表
sudo docker images
拉取鏡像
ubuntu
sudo docker pull ubuntu
拉取fedora 指定版本
sudo docker pull fedora:latest
在dockerhub查找鏡像
sudo docker search puppet
構(gòu)建制作鏡像.
docker自帶 docker commit
dockerfile (推薦)封裝好的docker build Dockerfile
為了能正常發(fā)布和共享鏡像,需要上傳到docker hub,需要注冊docker hub賬號
測試賬號是否可用.有返回信息
sudo docker login
使用commit創(chuàng)建鏡像
創(chuàng)建新容器
sudo docker run -i -t ubuntu /bin/bash
在容器中安裝Apache
apt-get -yqq update
apt-get -y install apache2
安裝完,退出
exit
查看剛剛創(chuàng)建的容器的ID
sudo docker ps -l -q
使用commit提交該容器 倉庫/鏡像名
sudo docker commit 812c25b695ae dfy_image/dfy_image01
帶參數(shù)提交方式:
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
目標: 創(chuàng)建一個簡單web服務(wù)器的Docker鏡像
初始化Dockerfile
創(chuàng)建文件夾,以此作為構(gòu)建環(huán)境
mkdir dfy_web
cd dfy_web
創(chuàng)建空的Dockerfile
touch Dockerfile
指令:
指令字母全大寫
指令按照順序從上到下執(zhí)行
每條指令會創(chuàng)建一個新的鏡像并提交.
基于ubuntu創(chuàng)建
FROM ubuntu
設(shè)置鏡像作者信息和郵件地址
MAINTAINWER dfy "dongfangyu@huawei.com"
更新apt
RUN apt-get update
安裝nginx包
RUN apt-get install -y nginx
創(chuàng)建index.html文件
RUN echo 'Hi,i am your container' /user/share/nginx/html/index.html/index
默認RUN在shell執(zhí)行,如果不希望在shell中,可以用以下數(shù)組格式
RUN ["spt-get", "install", "-y","nginx"]
設(shè)置應用程序會使用容器的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
在創(chuàng)建鏡像的時候遇到問題
FROM 命令不存在.
就是說不能利用Dockerfile創(chuàng)建鏡像.
所以下面只記錄原理和實現(xiàn)原理描述.
查看已經(jīng)創(chuàng)建好的鏡像
docker images
查看某個鏡像的信息
sudo docker images dfy_test01
鏡像構(gòu)建歷史
sudo docker history dfy_test01
通過構(gòu)建好的鏡像運行容器時,可以控制公開那些網(wǎng)絡(luò)端口給宿主機(在那臺電腦上運行的docker),
提供這些端口給外部訪問.
可以選擇49153 - 65535 之間的端口號來映射到容器中的80端口
通過任務(wù)管理器查看端口
docker ps -l
查看端口映射
sudo docker port 容器ID 80
容器的端口可以映射到宿主機的指定端口 如 80>80 80>8080
容器端口可以綁定到宿主機Ip上 80 > 127.0.0.1
查看宿主機ip地址
ifconfig
ip addr
訪問容器中的web內(nèi)容
curl localhost:49154
VOLUME 容器添加卷
定位:一個特定的目錄
特點:
存在于一個或者多個容器
在容器間共享和重用
可以不共享
對卷的修改是立即生效的
一直存在的
總結(jié): 存數(shù)據(jù),數(shù)據(jù)庫,日志,代碼
刪除daockerfile創(chuàng)建的鏡像:
sudo docker rmi dfy_test01