1 安装
yum install docker
2 启动
service docker start
3 设置随系统启动
chkconfig docker on
4 交互式创建容器并进入
docker run -it --name centos centos
------------------------exit退出也关闭容器; Ctrl+P+Q退出不关闭容器
5 后台启动容器
docker run -d --name nginx nginx
6 进入已经运行的容器
docker exec -it nginx /bin/bash
查看容器的元数据: docker inspect nginx
7 容器绑定端口到宿主机
docker run -d -p 8080:8080 --name tomcat tomcat
8 配置阿里源加速器
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
重启docker
systemctl daemon-reload
systemctl restart docker
9 创建私有仓库
docker pull registry
docker run -d --name reg -p 5000:5000 registry
私服默认只能使用https,需要配置开放http
vi/etc/docker/daemon.json
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"],
"insecure-registries":["192.168.232.110:5000"]
}
配置完毕重启下docker服务
systemctl daemon-reload
systemctl restart docker
可以通过宿主机IP和5000端口查看私有仓库的镜像
curl http://192.168.232.110:5000/v2/_catalog
10 私有仓库推送镜像
docker tag hello-world 192.168.232.110:5000/hello-world
docker push 192.168.244.7:5000/hello-world
查询镜像:http://192.168.244.5:5000/v2/_catalog
查询hello版本: http://192.168.244.5:5000/v2/hello/tags/list
11 commit镜像并上传仓库
创建centos容器
docker run -it --name cent centos
容器内安装Nginx服务
添加一下nginx源:
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum search nginx ##搜索一下看看
yum install nginx -y ## 安装
启动nginx服务
ctrl +P+Q退出容器,在主机环境内校验nginx请求,正常得到欢迎页
commit该镜像
现在要将cent容器提交成为一个镜像,命令如下:
docker commit cent cent-ng:v1
可看到得到了新的镜像cent-ng:v1
启动该镜像
1、使用新建的镜像创建容器,并进入查看,发现已安装有nginx,但nginx并未启动
容器内启动nginx服务,并退出容器。在主机方校验,nginx欢迎页面出现
2、现在我们希望启动容器时,直接启动nginx服务,怎么做?
docker run -d --name ngx3 cent-ng:v1 /usr/sbin/nginx -g "daemon off;"
上传到私有仓库
//前提把私有仓库容器开启
docker tag ff99ddaf2172 192.168.232.110:5000/cent-ng
docker push 192.168.232.110:5000/cent-ng
12 挂载文件
docker容器运行,产生一些数据/文件/等等持久化的东西,不应该放在容器内部。应当以挂载的形式存在主机文件系统中。
1、volume参数创建容器数据卷
2、我们通过docker inspect data查看容器元数据,可看到挂载信息
3、在容器端添加一个文件
回主机目录查看,果然存在此文件:
4、在主机方添加一个文件
回容器里查看,果然也同步增加了此文件
5、指定主机目录方式挂载文件
格式:-v path1:path2
如下命令,容器方会自动增加一个data目录
宿主机方,同样自动增加一个/opt/data目录
后台启动 挂载文件冒号前面为宿主机路径,后面为容器
docker run -d -v /data/temp:/usr/local/tomcat/webapps/ROOT -p 8081:8080 tomcat:latest
13 volumes-from引 用数据卷
新启一容器,引入上一步的data容器目录
自动得到同一个目录,内容与data容器里挂载一样