1. 程式人生 > >docker映象的匯入和匯出

docker映象的匯入和匯出

gitlab 的docker使用

gitlab docker

啟動命令


docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3

docker run -d -p 8080:80 gitlab/gitlab-ce:latest

將容器修改提交到映象


# 進入容器內部
[[email protected]#localhost docker]# docker run -ti  ubuntu:14.04 /bin/bash
[email protected]812a997f614a:/# id 
uid=0(root) gid=0
(root) groups=0(root) #做了一些修改 [email protected]812a997f614a:/# echo update>update.txt [email protected]812a997f614a:/# exit exit [[email protected]#localhost docker]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 812
a997f614a ubuntu:14.04 "/bin/bash" 7 minutes ago Exited (0) 22 seconds ago zealous_euler 69304dea46c7 gitlab/gitlab-ce:latest "/assets/wrapper" About an hour ago Exited (127) 44 minutes ago competent_minsky 67
ba866e21b0 gitlab/gitlab-ce:latest "/assets/wrapper" 2 hours ago Exited (137) About an hour ago hungry_hoover 2a3d08a0a2ff twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 2 hours ago Exited (137) About an hour ago nervous_wozniak 6db49540be99 twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 2 hours ago Exited (255) 2 hours ago 22/tcp, 443/tcp, 0.0.0.0:3000->80/tcp romantic_elion b08a6d6ed716 gitlab/gitlab-ce:latest "/assets/wrapper" 2 hours ago Exited (255) 2 hours ago 22/tcp, 443/tcp, 0.0.0.0:8080->80/tcp competent_brahmagupta 33fd0b1ebd27 gitlab/gitlab-ce:latest "/assets/wrapper" 2 hours ago Exited (127) 2 hours ago loving_brattain 6f53620a930c twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 3 hours ago Exited (127) 2 hours ago brave_galileo 88df78f77c4e ubuntu:14.04 "sleep 360" 4 days ago Exited (137) 4 days ago testcopy 81a879a36bd3 wordpress "docker-entrypoint..." 4 days ago Exited (0) 4 days ago wordpress a57a3cc492b7 mysql "docker-entrypoint..." 4 days ago Exited (0) 4 days ago mysqlwp # 將修改多的映象儲存成一個新的 [[email protected]#localhost docker]# docker commit 812a997f614a ubuntu:update sha256:317f102584605694da424bc96764559a1ccfda13943353f4cbdfd89c96515e6b [[email protected]#localhost docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu update 317f10258460 5 seconds ago 188 MB twang2218/gitlab-ce-zh 9.0.3 36172b5fefab 44 hours ago 1.19 GB gitlab/gitlab-ce latest 5eff2e44957c 2 days ago 1.11 GB mysql latest 9546ca122d3a 8 days ago 407 MB wordpress latest 4ad41adc2794 2 weeks ago 401 MB ubuntu 14.04 7c09e61e9035 5 weeks ago 188 MB daocloud.io/library/nginx 1.7.1 e3e043d3ed2f 2 years ago 499 MB # 檢視修改多的映象和原來映象之間的差異 [[email protected]#localhost docker]# docker diff 812a997f614a C /var C /var/cache C /var/cache/apt D /var/cache/apt/srcpkgcache.bin D /var/cache/apt/pkgcache.bin C /var/lib C /var/lib/apt C /var/lib/apt/lists A /var/lib/apt/lists/lock A /var/lib/apt/lists/partial A /var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_trusty-updates_InRelease A /update.txt C /root A /root/.bash_history [[email protected]#localhost docker]#

映象的匯入和匯出

export 和improt


[[email protected]#localhost docker]# docker run -ti  ubuntu:update /bin/bash
[email protected]:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  update.txt  usr  var

[[email protected]#localhost docker]# 
[[email protected]#localhost docker]# docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                        PORTS                                   NAMES
cbe3cb7799ed        ubuntu:update                  "/bin/bash"              47 seconds ago      Exited (1) 6 seconds ago                                              adoring_kare
812a997f614a        ubuntu:14.04                   "/bin/bash"              16 minutes ago      Exited (0) 8 minutes ago                                              zealous_euler
69304dea46c7        gitlab/gitlab-ce:latest        "/assets/wrapper"        2 hours ago         Exited (127) 53 minutes ago                                           competent_minsky
67ba866e21b0        gitlab/gitlab-ce:latest        "/assets/wrapper"        2 hours ago         Exited (137) 2 hours ago                                              hungry_hoover
2a3d08a0a2ff        twang2218/gitlab-ce-zh:9.0.3   "/assets/wrapper"        2 hours ago         Exited (137) 2 hours ago                                              nervous_wozniak
6db49540be99        twang2218/gitlab-ce-zh:9.0.3   "/assets/wrapper"        2 hours ago         Exited (255) 2 hours ago      22/tcp, 443/tcp, 0.0.0.0:3000->80/tcp   romantic_elion
b08a6d6ed716        gitlab/gitlab-ce:latest        "/assets/wrapper"        2 hours ago         Exited (255) 2 hours ago      22/tcp, 443/tcp, 0.0.0.0:8080->80/tcp   competent_brahmagupta
33fd0b1ebd27        gitlab/gitlab-ce:latest        "/assets/wrapper"        3 hours ago         Exited (127) 2 hours ago                                              loving_brattain
6f53620a930c        twang2218/gitlab-ce-zh:9.0.3   "/assets/wrapper"        3 hours ago         Exited (127) 2 hours ago                                              brave_galileo
88df78f77c4e        ubuntu:14.04                   "sleep 360"              4 days ago          Exited (137) 4 days ago                                               testcopy
81a879a36bd3        wordpress                      "docker-entrypoint..."   4 days ago          Exited (0) 4 days ago                                                 wordpress
a57a3cc492b7        mysql                          "docker-entrypoint..."   4 days ago          Exited (0) 4 days ago                                                 mysqlwp

# 將映象匯出到檔案
[[email protected]#localhost docker]# docker export cbe3cb7799ed > update.tar


# 建立一個新靜像從基於匯出的檔案
[[email protected]#localhost /]# docker import - update < update.tar 
sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc
[[email protected]#localhost /]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
update                      latest              fd00d520a43e        13 seconds ago      165 MB
ubuntu                      update              317f10258460        11 minutes ago      188 MB
twang2218/gitlab-ce-zh      9.0.3               36172b5fefab        44 hours ago        1.19 GB
gitlab/gitlab-ce            latest              5eff2e44957c        2 days ago          1.11 GB
mysql                       latest              9546ca122d3a        8 days ago          407 MB
wordpress                   latest              4ad41adc2794        2 weeks ago         401 MB
ubuntu                      14.04               7c09e61e9035        5 weeks ago         188 MB
daocloud.io/library/nginx   1.7.1               e3e043d3ed2f        2 years ago         499 MB
[[email protected]#localhost /]# 

save 和load

(像當與映象的備份和恢復)

# update是一個已經存在的映象
[[email protected]#localhost /]# docker save -o update1.tar update
[[email protected]#localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  update1.tar  update.tar  usr  var
[[email protected]#localhost /]# du -sh update1.tar 
166M    update1.tar

# 刪除update映象
[[email protected]#localhost /]# docker rmi update
Untagged: update:latest
Deleted: sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc
Deleted: sha256:14cc8cd7b783152682835346e5fe90860a9feeb684866688692285319d4e97ad

[[email protected]#localhost /]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
ubuntu                      update              317f10258460        16 minutes ago      188 MB
twang2218/gitlab-ce-zh      9.0.3               36172b5fefab        44 hours ago        1.19 GB
gitlab/gitlab-ce            latest              5eff2e44957c        2 days ago          1.11 GB
mysql                       latest              9546ca122d3a        8 days ago          407 MB
wordpress                   latest              4ad41adc2794        2 weeks ago         401 MB
ubuntu                      14.04               7c09e61e9035        5 weeks ago         188 MB
daocloud.io/library/nginx   1.7.1               e3e043d3ed2f        2 years ago         499 MB

#匯入映象
[[email protected]#localhost /]# docker load < update1.tar 
14cc8cd7b783: Loading layer [==================================================>] 173.8 MB/173.8 MB
Loaded image: update:latest
[[email protected]#localhost /]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
update                      latest              fd00d520a43e        6 minutes ago       165 MB
ubuntu                      update              317f10258460        17 minutes ago      188 MB
twang2218/gitlab-ce-zh      9.0.3               36172b5fefab        44 hours ago        1.19 GB
gitlab/gitlab-ce            latest              5eff2e44957c        2 days ago          1.11 GB
mysql                       latest              9546ca122d3a        8 days ago          407 MB
wordpress                   latest              4ad41adc2794        2 weeks ago         401 MB
ubuntu                      14.04               7c09e61e9035        5 weeks ago         188 MB
daocloud.io/library/nginx   1.7.1               e3e043d3ed2f        2 years ago         499 MB
[[email protected]#localhost /]# 

Dockerfile


[[email protected]#localhost ~]# mkdir docker_file
[[email protected]#localhost ~]# cd docker_file/

[[email protected]#localhost docker_file]# vi Dockerfile 

[[email protected]#localhost docker_file]# cat Dockerfile 
FROM ubuntu:14.04

ENTRYPOINT ["/bin/echo"]

[[email protected]#localhost docker_file]# docker build .
Sending build context to Docker daemon 2.048 kB
Step 1/2 : FROM ubuntu:14.04
 ---> 7c09e61e9035
Step 2/2 : ENTRYPOINT /bin/echo
 ---> Running in d53f31b93355
 ---> 26dd06d2e5a5
Removing intermediate container d53f31b93355
Successfully built 26dd06d2e5a5

#執行映象

[[email protected]#localhost docker_file]# docker run 26dd06d2e5a5

#加入一個引數

[[email protected]#localhost docker_file]# docker run 26dd06d2e5a5 hello world
hello world
[[email protected]#localhost docker_file]# vi Dockerfile 
[[email protected]#localhost docker_file]# docker run 26dd06d2e5a5 hello world
hello world


#
[[email protected]#localhost docker_file]# cat Dockerfile 
FROM ubuntu:14.04

#ENTRYPOINT ["/bin/echo","Hi world!"]
CMD ["/bin/echo","Hi world!"]

[[email protected]#localhost docker_file]# docker build .
[[email protected]#localhost docker_file]# docker run 12458a717ced
Hi world!


[[email protected]#localhost docker_file]# docker run 12458a717ced /bin/date 
Sat Apr  8 12:08:14 UTC 2017


構建的時候打個標籤


[[email protected]#localhost docker_file]# docker build -t yang:01 .
Sending build context to Docker daemon 3.584 kB
Step 1/2 : FROM ubuntu:14.04
 ---> 7c09e61e9035
Step 2/2 : CMD /bin/echo Hi world!
 ---> Running in 94e510f085d7
 ---> 6b33c8a6a32f
Removing intermediate container 94e510f085d7
Successfully built 6b33c8a6a32f
[[email protected]#localhost docker_file]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
yang                        01                  6b33c8a6a32f        5 seconds ago       188 MB
update                      latest              fd00d520a43e        29 minutes ago      165 MB
ubuntu                      update              317f10258460        41 minutes ago      188 MB
twang2218/gitlab-ce-zh      9.0.3               36172b5fefab        44 hours ago        1.19 GB
gitlab/gitlab-ce            latest              5eff2e44957c        2 days ago          1.11 GB
mysql                       latest              9546ca122d3a        8 days ago          407 MB
wordpress                   latest              4ad41adc2794        2 weeks ago         401 MB
ubuntu                      14.04               7c09e61e9035        5 weeks ago         188 MB
daocloud.io/library/nginx   1.7.1               e3e043d3ed2f        2 years ago         499 MB
[[email protected]#localhost docker_file]# 

構建例項

將flask應用 打包的映象中

編寫python程式 hellp.py

#!/usr/bin/env python

from flask import Flask
app = Flask(__name__)

@app.route('/hi')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

編寫Dockerfile

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get install -y python
RUN apt-get install -y python-pip
RUN apt-get clean all

RUN pip install flask

ADD hello.py /tmp/hello.py

EXPOSE 5000

CMD ["python","/tmp/hello.py"]