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
具体操作:
去以下网站注册,获取一个地址:
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实现跨主机容器连接