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,如需轉載請自行聯系原作者