使用脚本安装Docker 确保Docker已经删除的情况下,执行如下命令 [root@h103 ~]# curl -sSL https://get.docker.com/ | sh + sh -c ' [root@h103 ~]# 启动Docker [root@h103 ~]# service docker start Redirecting to /bin/systemctl start docker.service [root@h103 ~]# service docker status Redirecting to /bin/systemctl status docker.service ● docker.service ; vendor preset: disabled) Active: active (running) since Tue 2016-01-19 17:49:51 CST; 5s ago 08:00" level=info msg="Docker daemon" commit=a34a1d5 ...n=1.9.1 Jan 19 17:49:51 h103 systemd[1]: Started
接下来让我们尝试使用 docker 构建一个 web 应用程序。 我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。 运行一个web容器 docker pull training/webapp # 载入镜像 docker run -d -P training/webapp python app.py [root@jkc 网络端口的快捷方式 通过docker ps命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port,使用docker port可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号 我可以使用 docker port 0d3fe01b6c13 或 docker port lucid_lederberg 来查看容器端口的映射情况。 00:00:00 python app.py 检查 WEB 应用程序 使用 docker inspect 来查看 Docker 的底层信息。
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 显示 Docker 版本信息 语法格式 docker version [OPTIONS] 可以看到 Docker Client、Docker Server 的信息
一、docker plugin Docker Plugin 是 Docker 社区提供的一种扩展机制,可以通过插件来增强 Docker 引擎的功能。 Docker Plugin 可以让我们快速、轻松地扩展 Docker 引擎的功能,将其变得更加灵活和可定制化。 参考文档:docker plugin | Docker Documentation | Docker文档 插件是在与docker守护程序相同或不同的主机上运行的进程,该进程通过将文件放置《插件发现》章节所描述的插件目录之一中的相同 升级插件时,您应该首先停止Docker守护进程,升级插件,然后再次启动Docker。 5、API设计 插件API是基于HTTP的RPC样式的JSON,非常类似于webhooks。 请求从 Docker守护程序(Docker daemon)到 该插件。
CMD ["ls","-a"] ---> Running in 245e5b211e0f Removing intermediate container 245e5b211e0f ---> e53c44d55553 dashujulaoge/mytomcat:1.0 The push refers to repository [docker.io/dashujulaoge/mytomcat] a220a5aaf18b : Pushed 1.0: digest: sha256:5fe61237de0a6c3f4fe3d728600c10b42098377b8ceca9bac1a192fb42f28795 size: 954 192.168.0.1 mynet 52059516f0e8b6a9dd7beafea725dde886f6e1555141dbe390213689b79bb2c5 [root@192 ~]# docker 启动两个tomcat进行测试 [root@192 ~]# docker run -d -P --name tomcat-net-01 --net mynet tomcat 6357504d4d17dac1c94e5b0ed4ddf8df74d9378e168fe05d21fee2da99da5581
存储 默认情况下,registry 中的数据是以docker卷的形式存在于本地文件系统 可以使用 -v 的参数来指定一个卷的位置,从而实现对数据存储的控制 [root@h103 ~]# ls anaconda-ks.cfg dockerfile [root@h103 ~]# docker ps -a CONTAINER ID IMAGE COMMAND registry registry:2 f0e1c155d7ad1e0607e33f9f0b9ff23f1d7e4761b88070486425f3137b513540 [root@h103 ~]# docker [root@h103 ~]# docker push localhost:5000/ubuntu The push refers to a repository [localhost:5000/ubuntu ] (len: 1) 8693db7e8a00: Pushed a4c5be5b6e59: Pushed c4fae638e7ce: Pushed f15ce52fc004: Pushed latest
创建 Swarm 集群 有了发现服务作基础,接下来就要创建 Swarm 管理节点,我们创建两个节点(分别在不同的服务器上)来模拟高可用架构 创建第一个管理节点 [root@h104 ~]# docker advertise 192.168.100.104:4000 consul://192.168.100.104:8500 a6a0adaa76a8771bf373998832deaa236d68513bb5f9de0b3051c49761447e1a [root@h104 ~]# docker ps -a CONTAINER ID IMAGE COMMAND ~]# docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise 192.168.100.103:4000 STATUS PORTS NAMES [root@docker ~]#
Docker Compose 简化了构建和部署多容器 Docker 应用程序的流程。 一、Docker-Compose 1.Docker-Compose Docker Compose是一个用于定义和运行多个Docker容器应用程序的工具。 可以使用以下命令检查 Docker 是否已经安装: docker --version 安装 Docker Compose 的前置依赖: sudo yum install -y curl 使用以下命令下载 赋予 Docker Compose 二进制文件可执行权限: sudo chmod +x /usr/local/bin/docker-compose 使用以下命令检查 Docker Compose 是否已经安装 /gateway ports: - "10010:10010" 可以看到,其中包含5个service服务: nacos:作为注册中心和配置中心 image: nacos/nacos-server
《Docker学习系列》教程已经发布的内容如下:【图文教程】Windows11下安装Docker Desktop【填坑】在windows系统下安装Docker Desktop后迁移镜像位置【Docker 学习系列】Docker学习1-docker安装【Docker学习系列】Docker学习2-docker设置镜像加速器【Docker学习系列】Docker学习3-docker的run命令干了什么? docker为什么比虚拟机快? 【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令【Docker学习系列】Docker学习系列3:常用命令之容器命令【Docker学习系列】Docker学习4-常用命令之重要的容器命令镜像是什么 如同花卷Docker镜像加载原理是什么?为什么docker镜像要采用这种分层结构呢?镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用。
docker-compose.yml文件 docker-compose.yml文件就是用来配置服务的,这里有一个官网给出的例子: ? Docker Compose的命令 docker-compose build 把服务构建成镜像。 此外还有这些常用形式的命令: docker-compose logs docker-compose ps docker-compose stop docker-compose start docker-compose 执行docker-compose build 定义好docker-compose.yml之后,就可以进行构建了,执行docker-compose build: ? 很快就完成了。 执行docker-compose up docker-compose up: ? ?
Spring项目发布,请参考:docker---(3)docker 发布spring web项目 SpringBoot入门,请参考:SpringBoot--从0开始学SpringBoot Docker入门 ,请参考: Docker---从零开始学Docker 1.pom.xml 将打包方式改为war包 [java] view plain copy <packaging>war</packaging> plain copy root@iZuf6axmuekh1n14dwcufmZ:~# docker exec -it tomcat2 /bin/bash root@91ebdd8d5c65:/usr @91ebdd8d5c65:/usr/local/tomcat/webapps# rm -rf tweb root@91ebdd8d5c65:/usr/local/tomcat/webapps# ls :~# docker exec -it tomcat2 /bin/bash root@91ebdd8d5c65:/usr/local/tomcat# ls LICENSE NOTICE RELEASE-NOTES
一 docker镜像构建说明 A. 两种构建方式 手动构建docker镜像 自动构建docker镜像[dockerfile] B. 环境准备 docker container rm `docker container ls -q -a` docker volume rm `docker volume ls -q` docker run 打包为新镜像conmit docker commit noah-nginx c7-nginx:v1 [root@docker01 ~]# docker image ls c7-nginx REPOSITORY 环境准备 docker container rm `docker container ls -q -a` docker volume rm `docker volume ls -q` mkdir -p /data/docker-file/c7-nginx/ cd /data/docker-file/c7-nginx/ B.
镜像管理 什么是 Docker 镜像 Docker 镜像是一个只读的 Docker 容器模板。Docker 镜像中含有容器启动所需要的的文件系统结构及其内容。 layer 是 Docker 用来管理镜像层的中间概念,layer 主要存放了镜像层的 diff_id、size、cache_id 和 parent 等,实际文件内容由存储驱动管理 5. Docker file Docker file 是在 docker build 命令构建自己的 Docker 镜像时需要使用到的定义文件。 : Pulling from library/ubuntu f22ccc0b8772: Pull complete 3cf8fb62ba5f: Pull complete e80c964ece6a: Pull complete Digest: sha256:fd25e706f3dea2a5ff705dbc3353cf37f08307798f3e360a13e9385840f73fb3 Status: Downloaded
Docker 迁移触发器 提高容器安全性、Docker 未来的不确定性、技术战略变化和预算问题都可能促使企业寻找 Docker 的替代品作为其容器标准。 5 个 Docker 替代品 这里有五种流行的 Docker 替代方案可供考虑。 Buildah Buildah 是一个支持 Open Container Initiative[5]容器镜像的开源工具。 ---- Docker 商业模式的变化以及不断增加的商业和公共部门的安全与合规要求正在削弱 Docker 的市场地位。 www.techtarget.com/searchsecurity/news/252499956/Codecov-breach-raises-concerns-about-software-supply-chain [5]
在第5部分中,你将学习分布式应用程序层次结构的顶部:堆栈。 堆栈是一组相互关联的服务,它们可以共享依赖关系,并且可以进行协调和伸缩。 /repo:tag with your name and image details image: username/repo:tag deploy: replicas: 5 : $ docker stack deploy -c docker-compose.yml getstartedlab Updating service getstartedlab_web (id: angi1bf5e4to03qu9f93trnxm 转到8080端口的IP地址,您可以看到可视化器正在运行: 可视化器的单个副本按照预期在manager上运行,并且网络的5个实例遍布整个群集。 命令 $ docker stack deploy -c docker-compose.yml getstartedlab 5.运行docker service ls命令,去验证这三个服务跟预期一样正常运行
下面分几个部分介绍: 1. harbor介绍 2. harbor的核心组件 3. harbor的安装要求 4. harbor安装 5. 创建https证书以及配置相关目录权限 6. 重启docker systemctl daemon-reload systemctl restart docker 这一次docker重启会使用较长的时间, 因为启动的时候会自动启动harbor仓库 docker 登录docker仓库 docker login hub.lxl.com ? 5. 查看镜像镜像上传到harbor的方式 ? 6. 重启docker systemctl daemon-reload systemctl restart docker 这一次docker重启会使用较长的时间, 因为启动的时候会自动启动harbor仓库 docker 登录docker仓库 docker login hub.lxl.com ? 5. 拉取镜像 docker pull hub.lxl.com/sa/tomcat9 ?
Docker的核心组件: 1.Docker客户端 - Client 2.Docker服务器 - Docker deamon 3.Docker镜像 - Image 4.仓库 - Registry 5.Docker Docker采用的是C/S架构,客户端向服务器发送请求,服务器负责创建、运行和分发容器。 Docker客户端: Docker客户端的命令如下: ? Docker容器: Docker容器就是Docker运行的环境。对于软件而言,镜像像是生命周期的构建和打包阶段,容器则是启动和运行阶段。 ,这个文件被称作 Dockerfile,通过执行 docker build <docker-file> 命令可以构建出 Docker 镜像. docker pull 命令是从Registry下载镜像 docker Docker 客户端执行 docker run 命令。 Docker daemon 发现本地没有 httpd 镜像。 daemon 从 Docker Hub 下载镜像。
github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql的镜像 ,但根据其参考文档在mac上尝试了数次,将mysql数据库文件存储在mac本机时,启动总是报错,大意是docker容器运行时,容器的当前用户mysql,由于权限不足无法mac本机上创建文件,stackoverflow RUN mkdir -p /var/run/mysqld RUN chmod -R 777 /var/run/mysqld 将上面这段保存成名为"Dockerfile"的文件,然后在当前目录下,输入: docker build完成后,可用docker images ls确认下是否在本机生成了名为yjmyzz/mysql-osx的镜像,接着就可以创建mysql容器了,示例如下: docker run -d -h mysql start mysql 上传镜象 为了以后使用方便,可以将mac版的mysql镜像上传到daocloud.io,命令如下: docker login daocloud.io docker tag yjmyzz
Docker可以说是让企业采用微服务的最具影响力的平台。 Docker日志驱动 在Docker中进行日志记录的第三种方法是使用平台的日志驱动程序将日志事件转发给在主机上运行的syslog实例。 然而,使用Docker日志驱动程序也有一些缺点: 它不允许进行日志解析,只允许进行日志转发。 Docker日志命令只与日志驱动程序JSON文件一起工作。 这里可以找到为Docker配置默认日志驱动程序的说明。 容器专用日志 这种方法的主要优点是允许在Docker环境中完全地管理日志事件。 原文:5 Docker Logging Best Practices 作者:Jeffrey Walker 翻译:Vincent
本节通过学习 docker 的 nginx 镜像,容器的使用。以及如何映射文件。 image.png docker run 其实等于 docker create + start 因为tag为 1.15 的 nginx 镜像并不在本地,会先下载再运行 浏览器打开 locahost /usr/share/nginx/html 切换到Dockerfile所在路径 制作镜像 docker build -t my-nginx . 运行容器 docker run -d -p 80:80 my-nginx:ng-test 注意我映射的端口不再是8088,这样 本地浏览器就能访问 ng.test 了 停止容器: 先 docker ps 获取容器ID,比如是 934f93002018 然后 docker stop 934f93002018