[root@206 ~]# systemctl start docker
下載鏡像node
[root@206 ~]# docker pull ubuntu:17.10 17.10: Pulling from library/ubuntu 06d6d7dd14f0: Pull complete 7afd309907db: Pull complete 151009f8900b: Pull complete 36547d3d8f4e: Pull complete 320476e1abe2: Pull complete Digest: sha256:0fda3973dca01bb6797c8f84f7728730e3760fff0360b213bb1a8f2a65492967 Status: Downloaded newer image for ubuntu:17.10
[root@206 ~]# docker search python NAME DESCRIPTION STARS OFFICIAL AUTOMATED python Python is an interpreted, interactive, obj... 1843 [OK] kaggle/python Docker image for Python scripts run on Kaggle 62 [OK] google/python Please use gcr.io/google-appengine/python ... 35 [OK] vimagick/python mini python 3 [OK] dockershelf/python Repository for docker images of Python. Te... 3 [OK] pandada8/alpine-python An alpine based python image 3 [OK] beevelop/nodejs-python Node.js with Python 2 [OK] lucidfrontier45/python-uwsgi Python with uWSGI 2 [OK] tsuru/python Image for the Python platform in tsuru PaaS. 2 [OK] colstrom/python Docker on Python, with pip! 1 [OK] webhippie/python Docker images for python 1 [OK] lcgc/python The base image for applications written in... 1 [OK] orbweb/python Python image 1 [OK] 1science/python Python Docker images based on Alpine Linux 1 [OK] allanlei/python Python Images 0 [OK] croscon/python Python image for Croscon 0 [OK] kirigamico/python Base Docker image which contains Python, G... 0 [OK] ceecko/python Python image 0 [OK] bynd/python Debian-based Python image 0 [OK] samtayuk/python Python with bower, less and sass 0 [OK] funkygibbon/python Minimal python based on funkygibbon/ubuntu 0 [OK] 1maa/python Python images 0 [OK] panubo/python Latest python versions built from source 0 [OK] mediadesignpractices/python Base python build with useful preinstalls 0 [OK] codekoalas/python Runs python scripts every 5 minutes after ... 0 [OK]
篩選能夠自動化構建的python
[root@206 ~]# docker search --automated python
篩選收藏數3以上的git
[root@206 ~]# docker search -s 3 python
篩選級別爲2以上的github
[root@206 ~]# docker search --stars=2 python
顯示完整描述信息web
[root@206 ~]# docker search --no-trunc python
[root@206 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 17.10 073e7b409b9b 36 hours ago 89.6 MB
[root@206 ~]# docker run -ti ubuntu:17.10 /bin/bash root@23a9ebc23cc5:/#
23a9ebc23cc5是容器的iddocker
咱們在運行的這個容器中進行修改ubuntu
root@23a9ebc23cc5:/# mkdir test
而後退出vim
root@23a9ebc23cc5:/# exit
[root@206 ~]# docker commit -m "this is a new images" -a "root" 23a9ebc23cc5 newubuntu:8888
查看鏡像,發現多了一個centos
[root@206 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE newubuntu 8888 036d21b62a12 2 minutes ago 89.6 MB ubuntu 17.10 073e7b409b9b 37 hours ago 89.6 MB
方法二:本地模板中導入鏡像
[root@206 ~]# wget http://download.openvz.org/template/precreated/suse-13.1-x86-minimal.tar.gz
生成鏡像緩存
[root@206 ~]# cat suse-13.1-x86-minimal.tar.gz | docker import - newsuse:99999
看一下,又多了一個
[root@206 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE newsuse 99999 7e4ff5f67461 4 seconds ago 156 MB newubuntu 8888 036d21b62a12 19 minutes ago 89.6 MB ubuntu 17.10 073e7b409b9b 37 hours ago 89.6 MB
方法三:使用Dockerfile
[root@206 test]# pwd /test [root@206 test]# touch Dockerfile FROM newubuntu:8888 MAINTAINER root RUN touch a.txt RUN mkdir test1
[root@206 test]# docker build -t="newubuntuutu1" /test
[root@206 test]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE newubuntuutu1 latest 3d077336fcf6 5 seconds ago 89.6 MB newsuse 99999 7e4ff5f67461 16 minutes ago 156 MB newubuntu 8888 036d21b62a12 36 minutes ago 89.6 MB ubuntu 17.10 073e7b409b9b 37 hours ago 89.6 MB
[root@206 test]# docker rmi newubuntuutu1
沒有指定tag的時候,刪除的是tag爲latest的鏡像,若是有個名爲newubuntuutu1可是tag是其餘的時候,這個鏡像是不能刪除的,除非刪除的時候指定tag
[root@206 test]# docker rmi newsuse:99999
[root@206 test]# docker run -ti newubuntuutu1:latest /bin/bash
而後刪除這個鏡像,提示不能刪除
[root@206 test]# docker rmi newubuntuutu1:latest Error response from daemon: conflict: unable to remove repository reference "newubuntuutu1:latest" (must force) - container e9a6eeb12f6e is using its referenced image 3d077336fcf6
咱們須要先關閉容器 容器id爲e9a6eeb12f6e咱們只須要寫前四位
[root@206 test]# docker rm e9a6
而後再執行docker rmi newubuntuutu1:latest便可
[root@206 test]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> cbf64eb48a64 18 minutes ago 89.6 MB newsuse 99999 7e4ff5f67461 32 minutes ago 156 MB newubuntu 8888 036d21b62a12 52 minutes ago 89.6 MB ubuntu 17.10 073e7b409b9b 37 hours ago 89.6 MB
備份
[root@206 test]# docker save -o ubuntu-bak.tar ubuntu:17.10 [root@206 test]# ls Dockerfile ubuntu-bak.tar
刪除這個鏡像
[root@206 test]# docker rmi ubuntu:17.10
載入
[root@206 test]# docker load --input ubuntu-bak.tar Loaded image: ubuntu:17.10
寫時複製機制(copy-on-write),是一種在Linux中引入的只有進程空間的各段內容要發生變化時,才把父進程的內容複製給子進程的一種處理機制。
要建立一個子進程,一般的作法是
寫時複製機制(copy-on-write)中,一般狀況的作法是(只要父進程相應段不改變,就這麼作):
寫時複製機制(copy-on-write)中,當父進程相應段要更改,才:
Docker中,採用寫時複製機制來建立根文件系統,這樣的話不會致使龐大的內存的開銷,因此能夠節省大量內存和硬盤空間,可讓Docker的部署更方便快捷。
[root@206 test]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://69e9963d.m.daocloud.io
安裝git,並配置密鑰
[root@206 test]# yum -y install git [root@206 test]# ssh-keygen -t rsa -C "centos" [root@206 test]# cd ~/.ssh/ [root@206 .ssh]# ls id_rsa id_rsa.pub
複製id_rsa.pub的內容,並打開github 的setting配置
github新建一個倉庫,拉取到本地
[root@206 /]# git clone git@github.com:itliucheng/docker-test1.git
將以前save的tar文件放入
[root@206 /]# cp /test/ubuntu-bak.tar docker-test1/
提交到github
[root@206 docker-test1]# git add ubuntu-bak.tar [root@206 docker-test1]# git commit -m "add a images" [root@206 docker-test1]# git push origin master
以後別人能夠下載該文件並恢復爲鏡像