小结 参考资料、文档 免责声明 为了方面社区用户体验GreatSQL,我们同时还提供Docker镜像,本文详细介绍如何在Docker中部署GreatSQL,并且构建一个MGR集群。 MGR集群 跨宿主机之间的docker容器网络通信相对麻烦一些,为了简单起见,本次先在单机环境下构建由3个docker容器组成的MGR集群。 --version docker-compose version 1.18.0, build 8dd22a9 编辑docker-compose的配置文件,其实就是把创建docker容器的命令行参数固化到配置文件而已 小结 本文介绍了如何在Docker下运行GreatSQL,以及构建MGR集群的方法,并且也介绍了利用docker-compose快速构建MGR集群的方法。 现在生产环境中利用容器乃至在K8S环境中运行MySQL的场景越来越多了,有兴趣的同学也可以自行构建Docker镜像包。
可见 docker.service 是依赖于 docker.socket 的,但是并不必要开启 Tip: 其实上面的步骤完成,就已经能保证docker会开机启动,原因是它依赖的 docker.socket 虽然本身设定为不要开机启动,但开机时会被systemctl检查然后触发启动以支持 docker.service 的运行 可以用上面方法也将 docker.socket 设为开机启动(但这一步不是非常必要 ) [root@h103 ~]# systemctl list-unit-files| grep docker docker.service enabled docker.socket disabled [root@h103 ~]# systemctl enable docker.socket /docker.socket.
Docker构建之旅 ##构建三个docker,php、nginx、mysql三个镜像 ###1,先从docker仓库里面拉取centos镜像,和mysql镜像 docker pull docker.io 构建nginx的镜像 [root@Docker docker_file]# docker build -f Dockerfile_nginx -t nginx/php:1.5 . 构建php代码 [root@Docker docker_file]# docker build -f php_file -t php:8.8 . 运行docker镜像,测试结果 构建一个nginx的容器container [root@Docker docker_file]# docker run -d --network testnetwork Docker docker_file]# docker exec -it nginx chown -R www.www /code 构建一个PHP的容器container [root@Docker docker_file
原因是证书中指定的主机名为 docker-registry 而不是 h104 [root@h103 ~]# vim /etc/hosts [root@h103 ~]# grep docker-registry /etc/hosts 192.168.100.104 h104 docker-registry [root@h103 ~]# docker push docker-registry:5000/ubuntu systemctl start docker [root@h103 ~]# docker push docker-registry:5000/ubuntu The push refers to a repository f15ce52fc004: Pushed latest: digest: sha256:45d78ef16a9e6199ffbbc78f71c2c6ef6647f3be6b9721fe3f1b08d6e3fcf6b3 Pulling from ubuntu Digest: sha256:45d78ef16a9e6199ffbbc78f71c2c6ef6647f3be6b9721fe3f1b08d6e3fcf6b3
下载镜像 docker pull harisekhon/hbase 运行容器 docker run -ti harisekhon/hbase当你执行成功之后直接进入hbase shell,慢慢享用吧 使用hbase 退出容器后,下次再进入可以使用 docker exec -ti hbase1 /hbase/bin/hbase shell 创建表,第一个参数是表名,第二个参数是列簇名 create '
~]# docker -H :4000 ps Cannot connect to the Docker daemon. Is the docker daemon running on this host? [root@docker ~]# [root@docker ~]# docker -H :4000 info Cannot connect to the Docker daemon. Is the docker daemon running on this host? [root@docker ~]# docker -H 192.168.100.104:4000 info Containers: 11 Images: 17 Server Version: swarm
参考链接 Run Elasticsearch locally | Elastic Docs 环境 操作系统:Ubuntu 24.04 LTS 容器:Docker 28.2.2 ES 版本:最新版(9.0.3 ) 安装 1)安装 docker【已安装可跳过】 参考:Ubuntu 安装 docker-CSDN博客 2)启动 elasticsearch 若是出现报错请往 Q&A 看 # 通过 curl 下载启动脚本 并进行执行 curl -fsSL https://elastic.co/start-local | sh 3)查看是否启动成功 docker ps 开启远程访问【可选】 默认是只能本地访问 1)切换到 elastic-start-local 目录 这个目录就在你执行 curl -fsSL https://elastic.co/start-local | sh 的目录中, cd elastic-start-local 2)修改 docker-compose.yml vim docker-compose.yml 删除(有两处需要删除) 127.0.0.1: 删除后: 3)执行停止脚本 .
文章首发于微信公众号《程序员果果》 地址:https://mp.weixin.qq.com/s/foVeANf0imgU4hfOempp3A 构建Docker镜像有以下两种方法: 使用docker commit 如果不想使用这些缓存镜像,可以在构建时指定--no-cache参数,如:docker build --no-cache 4. run -p 80 -d huanchupk/df_test1 nginx -g "daemon off" 9. 在使用docker run运行容器时,可以通过-w参数覆盖构建时所设置的工作目录。 12. USER 镜像由什么用户执行,如果不指定默认以root用户执行。 镜像构建完成后,通过docker run运行容器时,可以通过-u参数来覆盖所指定的用户。 13. ARG 用于指定传递给构建运行时的变量。
使用 Docker 镜像 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一。 Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。 获取镜像 Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。 从 Docker 镜像仓库获取镜像的命令是 docker pull。 其命令格式为: docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式 比如: $ docker pull ubuntu:16.04 16.04: Pulling from library/ubuntu bf5d46315322: Pull complete 9f13e0ac480c e8988b5b3097: Pull complete 40af181810e7: Pull complete e6f7c7e5c03e: Pull complete Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe
Docker 生成镜像目前有两种方式: 通过 Dockerfile 自动构建镜像; 通过容器操作,并执行 Commit 打包生成镜像。 执行 Commit 实现打包生成镜像 通过 Dockerfile 可以快速构建镜像,而通过 commit 生成镜像可以解决应用在部署过程中有大量交互内容以及难以通过 Dockerfile 构建的问题。 通过 commit 构建镜像操作如下: 1,安装docker软件(yum install docker或apt-get install docker) image.png 2,下载docker centos 镜像(docker pull) image.png image.png 3,创建并进入容器(docker run) image.png 4,nginx docker基础镜像制作 [root@db70b62cb071 基础镜像(docker commit) [root@VM_0_11_centos ~]# docker ps | grep db70b62cb071 db70b62cb071 centos
在 Dockerfile 所在路径执行一下命令构建镜像: docker build -t nginx:my . 其中,命令最后的点(.)用于路径参数传递,表示当前路径。 除了使用Dockerfile构建镜像,也可手工制作 Docker镜像,但这种方式烦琐效率低,一般不适合生产。 Dockerfile 常用指令 在前面的例子中,提到了FORM、RUN指令。 使用 Dockerfile 构建 Docker 镜像 准备工作 准备一个Jar包,本次使用的Jar包是springboot整合swagger。 使用Dockerfile 构建 Docker 镜像 创建 Dockerfile 文件,并添加一下内容 #指定镜像 FROM java:8 #将本地文件夹挂载到当前容器 VOLUME /tmp #复制文件到容器 build 命令构建镜像 docker build -t itouch/wzq-swagger-mng . 4.
==2.20.1 build构建镜像文件 docker build 命令用于使用 Dockerfile 创建镜像。 路径; –pull :尝试去更新镜像的新版本; –quiet, -q :安静模式,成功后只输出镜像 ID; –tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签 这个点代表上下文目录的路径,就是当前路径,我这里是/root/docker_run docker build -t jkc_pytest:v1 . [root@jkc docker-run]# docker build -t jkc_pytest:v1 . ]# 运行过程中可以看到按步骤运行,如:Step 1/8 运行完成后,可以通过docker images查看生成的镜像 [root@jkc docker-run]# docker images REPOSITORY
拉取官方镜像(我们这里选择5.7,如果不写后面的版本号则会自动拉取最新版) docker pull mysql:5.7 # 拉取 mysql 5.7 docker pull mysql # 拉取最新版mysql镜像 MySQL文档地址 检查是否拉取成功 $ sudo docker images 一般来说数据库容器不需要建立目录映射 sudo docker run -p 3306:3306 run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql /logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7 -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录 检查容器是否正确运行 docker container ls 或 docker ps 可以看到容器ID
使用Makefile构建Docker 刚开始学习docker命令的时候,很喜欢一个字一个字敲,因为这样会记住命令。后来熟悉了之后,每次想要做一些操作的时候就不得不 重复的输入以前的命令。 镜像 airflow@88e36c088b81:~$ cat /etc/issue Debian GNU/Linux 9 \n \l ## RedHat [root@data-docker001 docker-airflow ]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@data-docker001 docker-airflow Docker构建用的指令 我常用的Makefile如下 NAME = ryan/airflow VERSION = 1.10.4 .PHONY: build start push build: build-version ; docker push ${NAME}:latest 构建一个版本的镜像 make build 构建完毕,运行一下镜像,看看内容是否正确 make start 最后推送到docker仓库 make
dockerfile 配置 FROM busybox MAINTAINER ops.attacker.club ADD *.tar.gz lua-nginx*.zip /usr/local/src/ 测试 docker 启动镜像 docker run --rm -it --name host1 busybox:test1 /bin/sh ADD 支持tar包解压不支持zip nginx 镜像构建 dockerfile /sbin/nginx", "-g", "daemon off;"] 构建和运行 docker build -t nginx:v1 -f Dockerfile . #构建镜像 docker run -d -p 80:80 --name nginx-1 nginx:v1
构建镜像 手动构建 手动构建 Docker 镜像的流程图,如下: ? 现在依次按照流程采用命令行的方式手动构建一个简单的 Docker 镜像。 # 对镜像进行命名, 原镜像ID取前几位就可以了 $: docker image tag 01603f50694eb62e9 busybox:manual # 验证新镜像 $: docker 自动化构建 Dockerfile 构建 自动化构建 Docker 镜像,Docker 公司提供的不是 SHELL 脚本的方式,而是通过定义一套独立的语法来描述整个构建过程,通过该语法编辑的文件,称为 # 通过命令查询出具体镜像的sha256摘要 $: docker inspect busybox:autobuild -f "{{.RepoDigests}}" sha256:9b63a0eaaed5e677bb1e1b29c1a97268e6c9e6fee98b48badf0f168ae72a51dc FROM busybox@sha256:9b63a0eaaed5e677bb1e1b29c1a97268e6c9e6fee98b48badf0f168ae72a51dc...
最近在研究流水线,对于我来说,自动构建并上传镜像是非常有必要的,一方面每次都需要执行代码,一方面每次都需要找到版本号,非常的麻烦。 在此,我顺便编写文章,记录gitlab快速搭建以及ci/cd部署。 配置要求: 4H 8G (可以自己电脑开自启动的虚拟机) 首先安装docker/docker-compose,nuoyis提供了快速安装脚本,在安装docker前全是n curl -sSO https: 构建 .gitlab.yml 编写示范 首先在库的根目录创建build.json { "name": "nuoyis-lnmp-np", "version": "0.1.3" } 然后获取token :20.10.8-dind alias: docker command: ["--insecure-registry=0.0.0.0/0"] variables: DOCKER_DRIVER " - 'docker login --username=$DOCKER_USERNAME --password=$DOCKER_PASSWORD registry.cn-hangzhou.aliyuncs.com
2、容器进程docker容器虽然支持多个进程的运行,但是只监听主进程的存活,建议不要在一个容器中启动多个进程。 docker容器启动后,会监听启动的主进程,如果主进程后台运行,docker会认为主进程已退出,导致容器运行出错。请保证主进程前台运行。如果需要在宿主机上后台运行容器,请使用-d参数。 3、镜像层docker镜像由多个镜像层组成,每一层都有它独立的id和校验和。docker会复用相同校验和的镜像层,以此降低镜像大小,提高传输速度。 镜像构建过程中,docker-engine会解析Dockerfile的指令,如果指令没用使用上下文的文件或上下文中的文件没有发生变更,就会复用使用上次构建的镜像对应的镜像层,提高构建速度。 如果不希望复用上次构建的镜像层,可以使用--no-cache参数。4、参数化配置docker镜像的区别应该体现在功能上,而不是配置上。
Docker Hub 目前Docker官方维护了一个公共仓库Docker Hub,其中已经包含了数量超过15000的镜像。大部分需求都可以通过在Docker Hub中直接下载镜像来实现。 可以在https://hub.docker.com 免费注册一个Docker账号。 在命令行输入执行docker login,输入用户名及密码可以登录Docker Hub,可以通过docker logout退出登录。 用户登录后也可以通过docker push 命令将自己的镜像推送到Docker Hub。 私有仓库 有时候使用Docker Hub这样的公有仓库可能不方便,用户可以创建自己的私有仓库。 docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。 安装运行docker-registry 可以通过官方registry镜像来运行。
前言 Docker 与 Jenkins 经常会放到一起构建 CI (持续集成)系统 这里结合Docker Registry 分享一下在Docker中构建 Jenkins 容器的相关操作,详细可以参阅 官方文档 Tip: 当前的最新版本为 Docker 1.10 Released on January 15, 2016 ---- 概要 ---- 自定义Jenkins镜像 准备构建环境 在构建环境中准备相应的证书文件和插件信息 [root@docker docker]# mkdir build && cd build [root@docker build]# pwd /root/docker/build [root@docker build]# vim plugins [root@docker build]# cat plugins role-strategy:2.2.0 [root@docker build]# cp .. /certs/docker.* .