一、docker安装
以centos为例
没有找到docker包,更新epel第三方软件库,运行命令: yum -y install epel-release
之后再执行:yum -y install docker-io 老版本的docker
开机启动: chkconfig docker on
启动docker服务:service docker start
查看docker版本 : docker version
卸载docker: yum remove -y docker
删除镜像和容器: rm -rf /var/lib/docker
列出docker软件列表 yum list installed | grep docker
docker版本区分:
docker-io 是以前早期的版本,版本号是 1.*,最新版是 1.13,而 docker-ce 是新的版本,分为社区版 docker-ce 和企业版 docker-ee,版本号是 17.* ,最新版是 17.12。
安装docker-ce
yum install -y yum-utils device-mapper-persistent-data lvm2
yum源添加:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里的源:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
二、命令使用
01、从仓库上查询images(例如下面的查找tomcat的镜像)
docker search tomcat
02、拉取镜像文件到本地
docker pull docker.io/tomcat
03、查看本地镜像文件
docker images
04、启动镜像并创建一个容器
docker run -d -p 8080:8080 --name web1 docker.io/tomcat
docker run -d -p 8081:8080 --name web2 docker.io/tomcat
-d:后台执行 -p端口映射,前面是宿主主机的端口、后面是容器的端口 --name容器的别名
重新run一个需要启一个其他的别名,防止冲突,以及宿主主机的端口改变
可以在浏览器输入ip和端口访问到8080的tomcat是否已经正常启动
05、查看启动中的容器
docker ps
docker ps -all 查看所有状态中的容器
06、关闭容器
docker stop 容器ID/容器名称
docker kill web1
07、启动容器
docker start web1
08、查看容器信息
docker inspect web1
09、进入容器
docker exec -it 容器ID/容器名称 /bin/bash
10、删除容器
docker rm xxx
11、删除镜像
docker rmi xxx
12、宿主主机文件挂载 使用绝对路径进行挂载
docker run -v /test:/test -d -p 8081:8080 --name web2 tomcat
宿主的目录会覆盖容器的目录,譬如挂在/usr/local/tomcat下,tomcat下面的内容就变成宿主主机test目录下的内容了
相关链接:https://www.cnblogs.com/ivictor/p/4834864.html
13、显示容器与宿主机的端口映射。
docker port 容器id/name
通过EXPOSE
命令文档化端口的方式十分有用。
本质上说,EXPOSE
或者--expose
只是为其他命令提供所需信息的元数据,或者只是告诉容器操作人员有哪些已知选择。
再次用-P
参数运行,但是不传入任何特定的-p
规则。可以看到Docker会将EXPOSE
指令相关的每个端口映射到宿主机的端口上:
docker run -d -P --name web4 ttomcat
docker port web4
8080/tcp -> 0.0.0.0:32768
虽然nginx服务开启了,但是port并没有进行映射到本机host,所以这个container并不能进行访问,重新启动一个进行了映射端口的容器
docker run -d -p80:80 centos_nginx:v1 /usr/local/nginx/sbin/nginx -g "daemon off;"
Dockerfile
FROM livingobjects/jre8
VOLUME /tmp
ADD ace-admin.jar app.jar
ADD wait-for-it.sh /wait-for-it.sh
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
构造镜像文件 最后一个点表示当前目录
docker build -t test:v1 .
参考链接:https://www.cnblogs.com/panwenbin-logs/p/8007348.html
Docker网络原则入门:EXPOSE,-p,-P,-link
Docker-compose
https://blog.51cto.com/9291927/2310444
简单应用 涉及一个wordpress的快速安装:
https://www.cnblogs.com/ee900222/p/docker_5.html
K8s文档
https://www.kubernetes.org.cn/doc-11
容器调度框架对比 k8s swarm mesos