[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
以后别人能够下载该文件并恢复为镜像