https://www.cnblogs.com/openxxs/p/4690478.html
===========================Docker=======================
http://www.cnblogs.com/zhangmingcheng/p/5720792.html
web容器:tomcat weblogic
容器:
container:
docker 2014开发
lxc linux container
轻量级虚拟机(类似于操作系统级虚拟化 openvz)
共享宿主机内核
Docker介绍:
?Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器
引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过
分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维
工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开
销的情况下提供资源隔离的应用运行环境。
Docker系统有两个程序:
docker服务端和docker客户端。
docker服务端是一个服务进程,管理着所有的容器。
docker客户端则扮演着docker服务端的远程控制器,可以用来控制
docker的服务端进程。
Docker三大核心组件:
? Docker 镜像 - Docker images
? Docker 仓库 - Docker registeries
? Docker 容器 - Docker containers
docker 国内仓库
网易蜂巢 阿里云 daocloud
===============================安装docker===================
一. 使用官方源安装(法一)
yum -y install docker
二、修改yum源,指定Docker官方的yum源安装(法二)
1.cat > /etc/yum.repos.d/docker.repo <<eof
[docker]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
eof
2、安装软件:
yum install docker-enginer
在安装过程中,很容易出现mirror下载速度太低,导致安装失败,多运行几次。
3、启动docker服务(wing提示:注意你的防火墙:)
systemctl start docker.service
`=========================注册网站账号===============`
1.注册网站账号
进入网站:https://hub.daocloud.io/
注册帐号:guoqingyangzz
2.然后进入你自己的“"制台",选择"加速器",点"立即开始",接入你自有的主机,就看到如下的内容了
下载并安装相关软件
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4fa7a90a.m.daocloud.io
创建或修改 /etc/docker/daemon.json 文件,修改为如下形式 (请将 加速地址 替换为在加速器页面获取的专属地址)
{
"registry-mirrors": [
"加速地址"
],
"insecure-registries": []
}
启动服务
systemctl restart docker
3.配置完成后从Docker Hub Mirror下载镜像,命令:
docker pull ubuntu:12.10
查看已经下载的镜像
docker image list
运行容器
docker run -i -t daocloud.io/library/ubuntu
只查看所有镜像的ID
[root@web1 ~]# docker images -q
2e769f4d3e9c
70b5d81549ec
e934aafc2206
1ae98b2c895d
只查看所有容器ID
[root@web1 ~]# docker ps -a -q
f54243bee7e5
a8173539d40f
删除所有镜像
docker rmi $(docker images -q)
移除一个或者多个容器,注意,不可以删除一个运行中的容器,必须先用docker stop或docker kill使其停止。
当然可以强制删除,必须加-f参数
docker rmi ID
-i 交互式 -t终端
若要断开与容器的连接,并且关闭容器:容器内部执行如下命令
[root@web1 ~]# docker run -it daocloud.io/centos:5
[root@a23c0d7358d6 /]# exit
exit
查看更详细
[root@web1 ~]# docker inspect a8173539d40f
yum -y install openssh-server
/etc/init.d/sshd start
注1:wing第一次使用daocloud是配置了加速器的,可以直接使用dao pull centos拉取经过加速之后的镜像,但是后
来发现,不使用加速器也可以直接在daocloud官网上找到想要拉取的镜像地址进行拉取,比如:#docker pull
daocloud.io/library/tomcat:6.0-jre7
注2:上面配置加速器的方法,官网会更新,最新方法你应该根据官网提示去操作。
进入网站:https://hub.daocloud.io/
==============集群管理====================================
点集群管理-》管理主机
==============================例子====================================
例一 运行交互式的容器
[root@localhost yum.repos.d]# docker run -t -i daocloud.io/centos:7 /bin/echo "hello world"
hello world
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。
例二:启动容器(后台模式)
[root@localhost yum.repos.d]# docker run -t -i daocloud.io/centos:7
/bin/sh -c "while true; do echo hello world; sleep 1; done" [终端1]
[root@localhost yum.repos.d]# docker ps 查看允许的容器 [终端2]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6edb81f9abbc daocloud.io/centos:7 "/bin/sh -c 'while..." 25 seconds ago Up 25 seconds hungry_engelbart
[root@localhost yum.repos.d]# docker logs 6edb81f9abbc 查看容器内的标准输出
hello world
hello world
[root@localhost yum.repos.d]# docker stop 6edb81f9abbc 停止容器
6edb81f9abbc
例三 将镜像打包->删除镜像->镜像还原
[root@localhost yum.repos.d]# docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/nginx latest cd5239a0906a 2 weeks ago 109 MB
daocloud.io/centos 7 e934aafc2206 2 months ago 199 MB
[root@localhost yum.repos.d]# docker save -o nginx.tar daocloud.io/nginx
[root@localhost yum.repos.d]# ls
CentOS-Base.repo nginx.tar
[root@localhost yum.repos.d]# docker rmi daocloud.io/nginx:latest
Untagged: daocloud.io/nginx:latest
Untagged: daocloud.io/nginx@sha256:1f9c00b4c95ef931afa097823d902e7602aebc3ec5532e907e066978075ca3e0
Deleted: sha256:cd5239a0906a6ccf0562354852fae04bc5b52d72a2aff9a871ddb6bd57553569
Deleted: sha256:530991fd6d0f08206190b1bf71ef51b4534365669785cb461c24d62083f67bb3
[root@localhost yum.repos.d]# docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/centos 7 e934aafc2206 2 months ago 199 MB
[root@localhost yum.repos.d]# docker load < nginx.tar
d626a8ad97a1: Loading layer [==================================================>] 58.46 MB/58.46 MB
24ee0a3fd4b9: Loading layer [==================================================>] 54.22 MB/54.22 MB
3ff93588120e: Loading layer [==================================================>] 3.584 kB/3.584 kB
例四 在宿主机和容器之间相互COPY文件
[root@localhost yum.repos.d]# docker pull daocloud.io/mysql:latest
Trying to pull repository daocloud.io/mysql ...
latest: Pulling from daocloud.io/mysql
[root@localhost yum.repos.d] docker run -t -i daocloud.io/mysql:latest
例五:docker使用mysql
[root@localhost yum.repos.d] docker run --name mysql --restart=always -p 0.0.0.0:3306:3306 -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d daocloud.io/mysql:latest
[root@localhost yum.repos.d] docker exec -it mysql bash 首先进入mysql容器的bash终端:
root@9cb5a46ca7dc:/# ls
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
root@9cb5a46ca7dc:/# mysql -u root -p123456 连接mysql
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11 MySQL Community Server - GPL
将容器的文件系统打包成tar文件
第一种
[root@VM_0_14_centos ~]# docker export --help
Usage: docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
--help Print usage
-o, --output string Write to a file, instead of STDOUT
[root@VM_0_14_centos ~]# docker export -o centos7.tar centos
[root@VM_0_14_centos ~]# ls
centos7.tar
第二种
[root@VM_0_14_centos ~]# docker save -o cetos7.2.tar centos
docker load < centos.tar
部署私有仓库
docker run -d -p 5000:5000 daocloud.io/library/registry:latest
docker run -d --name myhome -p 5000:5000 daocloud.io/library/registry:latest
docker restart myhome
docker exec -it myhome /bin/sh
docker pull daocloud.io/busybox
docker tag daocloud.io/busybox 119.29.175.88:5000/busybox
docker push 119.29.175.88:5000/busybox
[root@VM_0_14_centos sinatra]# cat /etc/docker/daemon.json
{"registry-mirrors": ["http://4fa7a90a.m.daocloud.io"],"insecure-registries":["119.29.175.88:5000"]}
[root@VM_0_14_centos sinatra]# docker restart myhome
myhome
[root@VM_0_14_centos sinatra]# docker exec -it myhome /bin/sh
/ # ls
bin entrypoint.sh home linuxrc mnt root sbin sys usr
dev etc lib media proc run srv tmp var
/ #
[root@VM_0_14_centos sinatra]# docker push 119.29.175.88:5000/v2/_catalog
Error parsing reference: "119.29.175.88:5000/v2/_catalog" is not a valid repository/tag: invalid reference format
[root@VM_0_14_centos sinatra]# curl 119.29.175.88:5000/v2/_catalog
{"repositories":["busybox"]}
杀死所有running状态的容器
# docker kill $(docker ps -a -q)
docker stop id(别名)
docker rm `docker ps -q`
容器通信