自已建立Docker Base Image
一. 環境
宿主機作業系統: OS X ,需要安裝VirtualBox ;
容器環境:centos7
二. 用VirtualBox 安裝系統,這裡以centos 7為例(CentOS-7-x86_64-Minimal-1503-01.iso)
建立虛擬機器,並安裝centos7,以下記錄了詳細安裝過程。
* 安裝過程簡單,我這裡網速太慢了,就不上圖了,有需要的朋友留個郵箱,我發pdf。*
安裝完後,重啟後進入系統。
三. 修改網路配置
修改網路配置 /etc/sysconfig/network-script/ifcfg-enp0s3。
刪除 UUID,HWADDR ;
修改ONBOOT=no 為 ONBOOT=yes , 然後儲存 。
$ ifconfig
Cannot find a valid baseurl for repo: base/7/x86_6
重啟網路介面:
[ [email protected] ~]#ifdown enps03
[[email protected] ~]#ifup enps03
$ yum install ifconfig
提示:Nothing to do
通過” yum provides” 命令列出那個包提供ifconfig命令
$ yum provides ifconfig
// 安裝
$ yum -y install net-tools
四. 安裝Docker
安裝 EPEL (參考:http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/ )
[ [email protected] ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
修改/etc/yum.repos.d/CentOS-Base.repo 把enabled=0 改成enabled=1
vim /etc/yum.repos.d/CentOS-Base.repo
[centosplus]
enabled=1
安裝 Docker
[[email protected] yum.repos.d]# yum install docker-io
啟動 Docker
[ [email protected] yum.repos.d]# service docker start
五. 建立基礎映象
替換變數
把 /etc/yum.repos.d/CentOS-Base.repo 檔案中
$releasever 替換成 7
$basearch 替換成 x86_64
快速替換方法:
vim /etc/yum.repos.d/CentOS-Base.repo
:%s/$releasever/7/g
:%s/$basearch/x86_64/g
建立Docker image 生成指令碼
[[email protected] yum.repos.d]# cd /root
[[email protected] ~]# mkdir scripts
[[email protected] ~]# cd scripts/
[[email protected] scripts]# vim createimage.sh
然後把 https://github.com/docker/docker/blob/master/contrib/mkimage-yum.sh 檔案中內容貼上進去
[[email protected] scripts]# chmod +x createimage.sh
建立image
[[email protected] scripts]# ./createimage.sh centos7base
建立成功後檢視,並把當前執行的容器刪除掉
[[email protected] tmp]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos7base 7.1.1503 112ee00c2cbc 8 minutes ago 227.7 MB
[[email protected] tmp]# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
752b9d49a079 centos7base:7.1.1503 "echo success" 10 minutes ago Exited (0) 10 minutes ago mad_saha
[[email protected] tmp]# docker rm 752b9d49a079
752b9d49a079
[[email protected] tmp]# docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
匯出image
[[email protected] tmp]# cd /tmp/
[[email protected] tmp]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos7base 7.1.1503 112ee00c2cbc 14 minutes ago 227.7 MB
[[email protected] tmp]# docker save 112ee00c2cbc > /tmp/centos7base.tar
[[email protected] tmp]# ls
centos7base.tar ks-script-L8TDO5 yum.log
[[email protected] tmp]#
六. Docker 常用命令
docker stop <CONTAINER ID> :用來停止執行中的容器,同時你還可以用
docker start <CONTAINER ID>:用來啟動一個已經停止的容器。
docker restart <CONTAINER ID>:可以重啟一個執行中的容器。這就相當於對一個容器先進行stop再start。
docker attach <CONTAINER ID> :關聯到一個正在執行的容器
刪除映象: docker rmi <IMAGE ID>
docker rmi 2db1e85f26ba
刪除容器:docker rm <CONTAINER ID>
docker rm c3bfb652a491
檢視正在執行的容器
docker ps -all
停止容器:
exit
重新進入視窗
docker start <CONTAINER ID>
docker attach <CONTAINER ID>
暫時退出容器
ctrl + p 然後 ctrl + q
重新入進:
docker attach <CONTAINER ID>
將容器儲存成映象:
docker commit <CONTAINER ID> <NAME>:<TAG>
七. 導到本地映象庫
回去宿主機,把虛擬機器中匯出的image拷到本地
hr:~ hr$ mkdir -p docker/images
hr:~ hr$ cd docker/images/
hr:images hr$ scp [email protected]:/tmp/centos7base.tar .
hr:images hr$ ls -lah
total 469392
drwxr-xr-x 3 hr staff 102B 12 5 21:08 .
drwxr-xr-x 3 hr staff 102B 12 5 21:05 ..
-rw-r--r-- 1 hr staff 229M 12 5 21:08 centos7base.tar
啟動Docker Quick Start Terminal
載入IMAGE 包到docker image
hr:images hr$ docker load < /Users/hr/docker/images/centos7base.tar
hr:images hr$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 112ee00c2cbc 29 minutes ago 227.7 MB
hello-world latest 975b84d108f1 7 weeks ago 960 B
TAR 等於none的就是剛剛匯入的,把TAG改個名字:
hr:images hr$ docker tag 112ee00c2cbc centos7base:7.1
hr:images hr$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos7base 7.1 112ee00c2cbc 33 minutes ago 227.7 MB
hello-world latest 975b84d108f1 7 weeks ago 960 B
執行容器:
hr:images hr$ docker run -i -t 112ee00c2cbc /bin/bash
[[email protected] /]# hostname
e948acae7b42
[[email protected] /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
八. 釋出映象到docker hub
前提是先註冊一個帳號:https://hub.docker.com/
1. 登入
docker login —username=<使用者名稱> —email=<郵箱地址>
2. 按docker REPOSITORY 要求修改映象TAG
docker tag <IMAGE ID> 使用者名稱/映象名/TAG
docker tag 112ee00c2cbc honor/centos7base:7.1
3. 上傳
docker push honor/centos7base
相關推薦
自已建立Docker Base Image
一. 環境 宿主機作業系統: OS X ,需要安裝VirtualBox ; 容器環境:centos7 二. 用VirtualBox 安裝系統,這裡以centos 7為例(CentOS-7-x86_64-Minimal-1503-01.iso) 建立虛
『中級篇』手動建立一個base Image(14)
執行 安裝 build imageview orien ogr 微信 微信公眾號 gcc 這篇文章主要介紹了Docker Base Image創建具體實現的相關資料,這裏提供了詳細的具體步驟,需要的朋友可以參考下github:https://github.com/limin
解決Jenkins建立Docker Image後無法推送到私有Registry的問題
最近剛開始使用Docker,把常用的命令摸了一遍後,就想把映象的build過程放到Jenkins上。具體過程就不說了,十分簡單,只需要幾條命令就可以了。 可以在向私有registry推送時卻報出了異常: docker push registry.mydo
docker系列之三 :建立自己的image並上傳到docker hub
執行docker run docker/whalesay 會提示沒有映象,然後自動下載映象 建立一個cokerfile mkdir mydockerbuild cd mydockerbuild vi Dockerfile 在docker file 下
基於已有的image,建立docker images
首先我們得知道怎麼下載映象: docker search 映象名稱 //電腦聯網情況下在docker HUB裡面查詢映象 docker pull 倉庫伺服器/倉庫/映象
docker實戰docker+python3.5+flask+gunicorn+gevent+nginx base image:centos
docker部署flask應用程式 簡單的在本地測試使用docker,為了方便記憶特此記錄,本文構建的映象沒有通過dockerfile來獲取映象,本文的操作都是使用sudo進行操作,普通使用者在centos系統好像不起作用,具體原因未查明。測試環境: 作
Docker Centos7 下建立 Docker 橋接網絡
bin pipe route pack config pre err 為什麽 4.3 為什麽要讓docker橋接物理網絡? docker默認提供了一個隔離的內網環境,啟動時會建立一個docker0的虛擬網卡,每個容器都是連接到docker0網卡上的。而docker0的ip段
Centos 7: 改變docker的image存放目錄
mil clean tom back options socket add fin lib steps:1. mkdir /data/docker 創建新的存放目錄2. systemctl stop docker 關閉docker進程3. vi /usr/lib/sys
建立docker靜態化IP
配置橋接網路 橋接本地物理網路的目的,是為了區域網內使用者方便訪問 docker 例項中服務,不需要各種埠對映即可訪問服務。 但是這樣做,又違背了 docker 容器的安全隔離的原則,工作中辯證的選擇。 建立橋接裝置: 安裝包: [[email protected] ~]# rpm -i
使用Dockerfile建立Docker映象
原文地址:https://renguangli.com/articles/docker-dockerfile 以下是Dockerfile常用指令的簡單介紹。 Dockerfile常用指令 FROM FROM指定基礎映象,若映象不存在Docker會從docke
Win32從資源中載入PNG圖片,然後建立GDI+的Image物件
void LoadPNGFromStaticRes(HMODULE hModule, UINT nResId, Image** ppImg) { HRSRC hRes = FindResource(hModule, MAKEINTRESOURCE(nResId), TEXT("PNG"))
建立docker mysql映象
docker pull centos:6.8 (冒號後面是版本號,不寫的話預設是latest,也可以自己選擇版本號) 建立容器 docker run -tid --name mysql -p 3306:3306 centos:6.8 /bin/bash
建立docker greenplum 容器以及greenplum 監控(GPCC)
下載基礎映象centos docker pull centos:6.8 建立容器 docker run -tid --name gp -p 5432:5432 -p 28080:28080 -v I:\gp\gp:/gp centos:6.8 /bin/bash (gp
docker 提示image operating system "linux" cannot be used on this platform
在命令列中輸入docker run -p 8050:8050 scrapinghub/splash: Unable to find image 'scrapinghub/splash:latest' locally latest: Pulling from
Synology 群暉建立docker連線到物理路由器
使用Docker Swarm,橋接網路可以在物理機器上傳播,以構建邏輯覆蓋網路。無論Container啟動哪個節點,它仍然能夠訪問同一覆蓋網路中的其他容器。但是,Swarm的功能沒有UI支援。 docker network create -d macvlan --subnet=192.
阿里雲,遠端建立 Docker & Docker
新增 yum yum install epel-release –y yum clean all yum list 安裝 Docker yum install d
docker——映象(image)
映象相關命令一覽表: docker images docker tag docker inspect docker history docker search docker pull/push docker rmi docker save/load &
bluemix建立docker容器
簡介: bluemix是基於kubernetes來服務的免費雲空間。繫結信用卡後可以建立一個月的叢集,一個月後會被刪除。 下面示例介紹如何使用kubernetes dashboard來建立一個容器,並提供給公網服務。 示例教程為部署一個apache官方映象,並對映80埠給公網服務。 一
如何從docker將image映象到私有的registry
docker越來越炙手可熱,如果你的團隊已經準備開始使用docker,那麼私有倉庫是必不可少的東西,首先是可以幫助你加快從伺服器pull映象的速度,其次也可以幫助你存放私有的映象,本文主要為大家介紹如何從公用伺服器上講開放的images備份到本地私有伺服器
建立docker映象的兩種方式
1. docker commit方式 檢查一下已有映象和容器 docker images docker container ls 這裡我們選擇對centos進行自定義映象 互動式執行centos容器 docker run -i