天天看點

docker的基本操作

docker的基本操作

1、容器的基本操作

(1)啟動容器

docker run centos echo "hello word"

(2)啟動互動式容器

 docker run -i -t ubuntu /bin/bash

 -i --interactive

 -t --tty

(3)檢視容器

root@ubuntu-virtual-machine:~# docker ps

root@ubuntu-virtual-machine:~# docker ps -a

root@ubuntu-virtual-machine:~# docker inspect 5529d1c45029(id或name)

(4)指定名字啟動容器

root@ubuntu-virtual-machine:~# docker run --name=container01 -i -t ubuntu /bin/bash

(5)重新啟動停止的容器:

docker start[-i] 容器名

(6)删除停止的容器

docker rm 容器名

2、Docker - 守護式容器

(1)以守護形式運作容器:

docker run -i -t IMAGE /bin/bash

Ctrl+P Ctrl+Q

(2)附加到運作中的容器:

docker attach 容器名

(3)啟動守護式容器:

docker run -d 鏡像名[COMMAND][ARG...]

(4)檢視容器日志:

docker logs [-f][-t][--tail]容器名

如:docker logs -tf --tail 0 dc1

(5)檢視容器内程序:

docker top 容器名

(6)在運作中的容器内啟動新程序:

docker exec [-d][-i][-t]容器名[COMMAND][ARG...]

(7)停止守護式容器:

docker stop 容器名

docker kill 容器名

(8)使用docker幫助檔案

man docker-run

man docker-logs

man docker-top

man docker-exec

3、在容器中部署靜态網站--設定容器的端口映射

  設定容器的端口映射

  run [-P][-p]

  方法一:

       docker run -p 80 -i -t ubuntu /bin/bash

  方法二:

       docker run -p 8080:80 -i -t ubuntu /bin/bash

  方法三:

       docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash

  方法四:   

       docker run -p 0.0.0.0:8080 -i -t ubuntu /bin/bash

 Nginx部署流程:    

  建立映射80端口的互動式容器

  安裝Nginx

  安裝文本編輯器vim

  建立靜态頁面

  修改Nginx配置檔案

  運作Nginx

  驗證網站通路

 docker run -p 80 --name web -i -t ubuntu /bin/bash

  apt-get install -y nginx

  apt-get install -y vim

  mkdir -p /var/www/html

  cd /var/www/html

  cat index.html 

<html>

<head>

      <title>Nginx in Docker</title>

</head>

<body>

       <h1>Hello ,I'm website in Docker!</h1>

</body>

</html>

# cat /etc/nginx/sites-enabled/default 

server {

listen 80 default_server;

listen [::]:80 default_server ipv6only=on;

root /var/www/html;//修改

  /var/www/html# cd /

  nginx

4.Docker鏡像與倉庫(一)

檢視和删除鏡像--鏡像的存儲位址

/var/lib/docker

  列出鏡像

  docker images

  檢視鏡像

  docker inspect

  删除鏡像

  docker rmi

擷取和推送鏡像

  查找鏡像

       方法一:去網站:registry.hub.docker.com/

       方法二:docker search

  拉取鏡像

         docker pull [OPTIONS] NAME [:TAG]

      使用國外的鏡像,太慢了,解決方法:

      使用--registry-mirror選項

         1、修改:/etc/default/docker

         2、添加:DOCKER_OPTS = "--registry-mirror=http://MIRROR-ADDR"

         https//www.daocloud.io

         具體操作:

         去以下網站注冊,擷取一個位址:

         修改配置檔案:

         echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://45df74c6.m.daocloud.io\"" | sudo tee -a /etc/default/docker

         sudo service docker restart

         docker pull ubuntu:12.10

  推送鏡像

         docker push

  建構鏡像

        方法一: docker commit 通過容器建構

        方法二:docker build 通過Dockerfile檔案建構

5、Docker用戶端和守護程序

連接配接方式:   

方法一:

unix:///var/run/docker.sock

如:

 nc -U /var/run/docker.sock

GET /info HTTP/1.1        

方法二:

  tcp://host.port

方法三:

  fd://socketfd

檢視守護程序

  ps -ef|grep docker

  sudo status docker

使用service指令管理

  sudo service docker start

  sudo service docker stop

  sudo service docker restart

啟動配置檔案

  /etc/default/docker

Docker的遠端通路

   第二台安裝Docker的伺服器

   修改Docker守護程序啟動選項,差別伺服器

   保證client API與Server API版本一緻

6.Docker鏡像與倉庫(二)

7.Docker容器的網絡連接配接

  docker0  --linux虛拟網橋

  linux虛拟網橋的特點

    可以設定IP位址

    相當于擁有一個隐藏的虛拟網卡

  管理虛拟網橋

  sudo apt-get install bridge-utils

  sudo brctl show

自定義虛拟網橋

  添加虛拟網橋

  sudo brctl addbr br0

  sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0

  更改docker守護程序的啟動配置:

  /etc/default/docker中添加DOCKER_OPS值

  -b=br0

docker容器的互聯

   允許所有容器互聯

   拒絕容器間互聯

   允許特定容器間的連接配接

Docker 容器與外部網絡的連接配接

8、Docker容器的資料管理 

資料卷

  為容器添加資料卷

    sudo docker run -v ~/container_data:/data -it ubuntu /bin/bash

  為資料卷添加通路權限

    sudo docker run -v ~/datavolume:/data:ro -it ubuntu /bin/bash

   使用Dockerfile建構包含資料卷的鏡像

   Dockerfile指令:

   VOLUME["/data"]

資料卷容器:

    挂載資料卷容器的方法:

       docker run --volumes-from [CONTAINER NAME]

docker資料卷的備份和還原

   資料備份方法

       docker run --volumes-from [container name] -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar [container data volume]

   資料還原方法:

      docker run --volumes-from [container name] -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar [container data volume]

9、Docker容器的跨主機通路

使用網橋實作跨主機容器連接配接

   網橋管理工具:bridge-utils

使用Open vSwitch實作跨主機容器連接配接

使用weave實作跨主機容器連接配接

本文轉自 corasql 51CTO部落格,原文連結:http://blog.51cto.com/corasql/1715727,如需轉載請自行聯系原作者