使用Docker镜像和仓库
為什么80%的碼農都做不了架構師?>>> ??
Docker鏡像
- 由文件系統疊加而成
- 最底端第一層是引導文件系統bootfs,類似grub
- 鏡像第二層是root文件系統rootfs
列出鏡像
huangyi@HP ~ % sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest cdd474520b8c 2 days ago 188 MB刪除鏡像
sudo docker rmi ubuntu
鏡像與容器關系
一對多
鏡像 ——> 程序
容器 ——> 進程
倉庫
查看ubuntu倉庫中其他鏡像
HP docker # sudo docker pull ubuntu Pulling repository ubuntu c6a3582257ff: Pulling image (vivid-20150528) from ubuntu, endpoint: https://registry-1.docker.io/v1/ 5ba9dab47459: Pulling image (14.04.1) from ubuntu, endpoint: https://registry-1.docker.io/v1/commit 構建新鏡像
創建一個要進行修改的定制容器
sudo docker run -i -t ubuntu /bin/bash
在容器中安裝vim
root@93a46591d393:/# sudo apt-get install vim Reading package lists... Done提交
HP huangyi # sudo docker commit 93a46591d393 ubuntu/myvim 3806f1faa5f007ccc756c96490d23c75fb8ede77775c3cd2b310617038157876查看本機現在的Repo,可以看見多了一個ubuntu/myvim
HP huangyi # sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu/myvim latest 3806f1faa5f0 2 minutes ago 231.4 MB ubuntu latest cdd474520b8c 3 days ago 188 MB##基于 Dockerfile 構建新鏡像
HP Docker # tree . └── static_web└── DockerfileDockerfile文件
# Version: 0.01 FROM ubuntu MAINTAINER name "ituzhi@163.com" RUN apt-get update RUN apt-get install -y nginx RUN echo 'Hi, I am in your container' \> /usr/share/nginx/html/index.html EXPOSE 80構建鏡像
sudo docker build -t="name/static_web" .
參看Repo,可以看見多了一個name/static_web
huangyi@HP ~ $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE name/static_web latest 1f8ee6fd2bd6 5 minutes ago 227.7 MB ubuntu/myvim latest 3806f1faa5f0 29 minutes ago 231.4 MB ubuntu latest cdd474520b8c 3 days ago 188 MB上述每一條RUN語句都會生成新鏡像,更新鏡像ID,刪除舊的鏡像。
查看最終鏡像
huangyi@HP ~ $ sudo docker run -t -i 1f8ee6fd2bd6 /bin/bash root@778aa645f23f:/# cat /usr/share/nginx/html/index.html Hi, I am in your containe可見鏡像構建成功。
也可以啟動容器中的Nginx。
sudo docker run -i -t -p 80 titus/static_web nginx -g "daemon off";-p選項將宿主機的49153端口綁定到容器的80端口,在宿主機中
HP static_web # curl 192.168.1.154:49153 Hi, I am in your container##鏡像推送到 Docker Hub 登陸 Docker Hub
sudo docker login
推送
docker push name/web
需要特別注意的是構建時的username一定是Docker Hub中的用戶名,
sudo docker build -t="name/static_web" .
##參考
http://stackoverflow.com/questions/25388684/pushing-docker-image-to-dockerhub
轉載于:https://my.oschina.net/lvyi/blog/515775
總結
以上是生活随笔為你收集整理的使用Docker镜像和仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Studio快捷键(MA
- 下一篇: CSS 实例