1. Docker Basic
安装docker(在/etc/selinux/config文件中设置selinux=disabled,否则安装时会报错)
curl -ssL http://get.docker.io/ | sh
启动docker,设置为开机启动
systemctl start docker
systemctl enable docker
ps: coreos-vagrant
docker有30个命令,可以用 man docker <command>查看各个命令的帮助文件
下面是一些常用命令:
docker pull 从一个仓库拉取镜像到另一个仓库(hello-world, busybox, alpine)
eg. docker pull hello-world
docker images 列出本地仓库中的镜像
eg. docker images | grep he
docker run 启动容器
eg. docker run -it --rm --name first-con hello-world 用hello-world镜像创建名为first-con的容器,稍后删除该容器
eg. docker run -it --name busybox busybox sh 用busybox镜像创建名为busybox的容器,并进入该容器
设置为忽略证书验证
vim /etc/systemd/system/multi-user.target.wants/docker.service文件中的以下位置,添加粗体字部分的参数
ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry 0.0.0.0/0
重新加载组件
systemctl daemon-reload
重启docker服务
systemctl restart docker
2. 使用Dockerfile构建image
按照当前目录下dockerfile文件中的命令,构建一个镜像,镜像名zcy/centos,tag7.2
docker build -t zcy/centos:7.2 .
docker build -t <repository>/<namespace>/<imagename>:<tag> -f <指定的dockerfile路径>
如果不显示的标明tag,tag默认设置为latest
3. 基于指定image创建并运行容器
使用image zcy/mariadb:5.5.47创建并运行容器,容器名mydb, -d是后台运行,-it是前台运行
docker run -d -p 3306:3306 --name mydb -e DB_USER=admin -e DB_USER=mypaas -e REMOTE_ADMIN=true -e REMOTE_ADMIN_USER=zcy -e REMOTE_ADMIN_PASS=zcypaas -v /mydata:/var/lib/mysql zcy/mariadb:5.5.47
docker run -d -p 80:80 --name worpdress -e WORDPRESS_DB_HOST=172.17.0.1 -e WORDPRESS_DB_USER=zcy -e WORDPRESS_DB_PASSWORD=zcypaas -v /data/logs:/var/logs/nginx zcy/wordpress:4.3
4. 创建docker register server
创建证书和密钥
openssl req -x509 -days 3650 -subj '/CN=reg.odt.com/' -nodes -newkey rsa:2048 -keyout domain.key -out domain.crt
docker run --entrypoint htpasswd registry:2.4.0 -Bbn zcy password > auth/htpasswd
docker run -d -p 8888:5000 --restart=always --name registry \
-v `pwd`/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
-v /registry:/var/lib/registry \
registry:2.4.0
1. 安装docker compose
curl -L https://github.com/docker/compose/releases/download/1.7.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
设置为可执行文件
chmod +x /usr/local/bin/docker-compose
Reference:
https://github.com/docker/compose/releases
2. Docker网络
NAT(bridge)
Host
Overlay
Contiainer
安装服务发现工具consul
3. Docker Swarm
Docker原生的集群, 调度策略,条件过滤
4. Docker存储
devicemapper 支持Cow(写时复写)
OverlayFS
Volume
VFS
XFS