首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

手摸手带你 Docker 从入门到实践

[bg] 在下最近遇到要在服务器安装 Mysql、Nginx、EasyMock 等工具的场景,这里记录一下我使用 Docker 安装的过程,希望也能在类似的场景中帮助到大家~ 本文前备知识需要一些...Windows 可以直接下载安装包来安装,或者 Mac 不使用 Homebrew 也可以去官网直接下载安装包来安装,百度一下到处都是安装方法,其他的就不用多说。...port [容器ID]/[容器Names] # 退出容器 $ exit # 容器退出 ctrl + p + q # 容器退出,快捷键 # 进入容器 $ docker attach...[容器ID] # 退出容器时会让容器停止,本机的输入直接输到容器中 $ docker exec -it [容器ID] # 退出容器时不会让容器停止,在已运行的容器中执行命令,创建和启动新的容器...,因为最常用: --name 为容器指定一个名称; -d 容器启动后进入后台,并返回容器 ID,即启动守护式容器; -P 随机端口映射; -p 80:8080 将本地 80 端口映射到容器的 8080

90522

Docker 容器技术使用指南

而每一个中间环境都有微小的差别,Docker 给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。 应用场景 3:提高开发效率 Docker 提升开发者的开发效率。...这是因为对 Docker 容器来说,当运行的应用退出后,容器也就没有继续运行的必要了。 某些时候,执行 docker run 会出错,因为命令无法正常执行容器会直接退出,此时可以查看退出错误代码。...默认情况下,常见错误代码包括: 125:Dockerdaemon 执行出错,例如指定了不支持的 Docker 命令参数; 126:所指定命令无法执行,例如权限出错; 127:容器内命令无法找到。...命令执行后出错,会默认返回错误码。 4. 守护态运行 更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。...例如对于一节中只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止,处于 stopped 状态。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

docker学习(4) 一些常用操作

,因为命令已经执行完了),而CONTAINER ID在很多场景中都会用到(比如:删除容器) 另外,对于同一个镜像(比如ubuntu),默认指定容器名称的话,每次容器启动docker都会生成一个唯一的名称...这其中的设计思想,可以仔细琢磨一二,想想也十分合理:类比一下,我们写代码时,同一个类new出多个实例,每个实例都会有自己不同的应用场景,比如:同样是一个Order实例,可以用在订单创建的业务场景中,也可以用在订单查询的返回结果中...,docker的镜像也是如此,同样一个ubuntu镜像文件,有人用它创建容器是为了安装nginx当成web server,有人用它创建容器是为了学习hadoop......这个目录映射到容器中的/opt/webapp,启动成功后,保持当前窗口不退出,可以再新开一个terminal容器,进入容器验证一下 可以尝试在host本机修改下/Users/yjmyzz/docker_volumn...-h hostname名称来指定,这个就不演示了 4.3 容器间的网络连接 假如有二个容器mysql, appserver,通常appserver中要访问数据库,所以需要appserver直接访问mysql

80370

基于docker构建测试环境

镜像:是用于创建 Docker 容器的模板 容器:独立运行的一个或一组应用 仓库:镜像的集中存放地,可以理解为代码控制中的代码仓库,Docker Hub(https://hub.docker.com)提供了庞大的镜像集合供使用...退出后,我们进行提交修改操作 ? 可以发现提交后返回的值就是镜像的ID 然后我们再通过这个新创建的镜像来启动一个容器看一下是否保存了之前的修改操作 ? ?...可以发现内容都是存在的 PS:这里还有一个点大家需要注意一下tag_name默认是latest,如果你没有自定义tag_name的时候,在启动的时候可以写,如果自定义过的话,在启动的时候需要加上tag_name...首先我们先启动一个MySQL容器 因为在这个组合中PHP的运行依赖于MySQL,所以我们先启动MySQL容器;而且因为数据库所产生的内容都将是非常重要的,而删除容器之后,里面的数据是不会保留下来的,所以我们使用挂载的方式将我们宿主机上的目录挂载到...然后启动PHP容器 ? 然后和MySQL建立连接 ? 发现没有pdo_mysql插件,需要自己进行安装,docker自己内置了下载方式 ? 然后我们更改一下php代码 ?

1.1K10

Docker实操:安装MySQL5.7详解(保姆级教程)

:5.7 这个 Docker 命令是用于启动 MySQL 5.7 容器的,让我们解释其中的各个部分: docker run:这是 Docker 启动容器的命令。...这样,您可以提供自定义的 MySQL 配置文件。 --restart=always:这个选项指示 Docker容器退出时自动重新启动容器。这对于确保 MySQL 服务一直可用非常有用。...这个命令将启动一个 MySQL 5.7 容器,将 MySQL 数据、日志和配置文件挂载到主机上的目录中,设置 MySQL 根密码,并允许容器在后台运行,以及在容器退出时自动重新启动。...lower_case_table_names = 1:将所有表名存储为小写。这有助于避免因大小写不同而导致的表名混淆和错误。...在某些操作系统(如 Windows 和 macOS),这个选项可能对大小写不敏感,而在其他操作系统(如 Linux)可能对大小写敏感。设置为 1 表示启用该功能,0 表示禁用。

12.9K105

docker 创建mysql镜像,并成功进行远程连接

1.安装 1.1 拉取镜像 docker pull mysql 拉取成功可以验证一下 docker images 1.2 创建并启动一个mysql容器 docker run --name ly-mysql...root用户的登陆密码 -p:端口映射,此处映射主机3306端口到容器pwc-mysql的3306端口 -d:成功启动容器后输出容器的完整ID....容器的ip docker inspect --format '{{ .NetworkSettings.IPAddress }}' 结果是:172.17.0.2 但是还是连接...PRIVILEGES; 1.4 其他 1.4.1 记录几个命令 1.4.1.1 退出容器 如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器 如果使用exit退出,那么在退出之后会关闭容器,可以使用下面的流程进行恢复...使用docker restart命令重启容器 使用docker attach命令进入容器 1.4.1.2 修改MySQL配置文件有两种方法: 一是进入容器,修改容器里的MySQL的配置文件,然后重新启动容器

2.8K10

Docker

通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟 1、快速,一致地交付您的应用程序 Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作...区别 1.传统虚拟机技术是虚拟出一套硬件后,在其运行一个完整操作系统,在该系统再运行所需应用进程; 2.容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。...Docker客户端既可以在本底访问守护进程,也可以远程访问守护进程。 Docker Image 镜像镜像是容器的基石,容器基于镜像启动,镜像就像是容器的源代码,保存了用于容器启动的各种条件。...attach c703b5b1911f docker exec it 和docker attach区别 attach直接进入容器启动命令,不会启动新的进程,用exit退出,会导致容器的停止 exec...如果容器挂了,主机再改也同步 查看挂在成功 docker inspect 容器id 找到返回信息里面的mounts 容器2继承容器1挂卷 docker run -it --privileged

25620

docker学习入门篇

注意:是强依赖Linux环境,即便在windows上部署Docker其本质也都是先安装一个虚拟机,然后在虚拟出来的Linux再安装并运行Docker。...-d: 后台运行容器返回容器ID,也就启动守护式容器(后台运行) -i: 以交互模式运行容器,通常与-t同时使用 -t: 为容器重新分配一个伪输入终端,通常与-i同时使用。...(3)退出容器 1)exit run进去容器,exit退出容器也随之停止 2)ctrl+p+q run进去容器,ctrl+p+q退出容器不停止(我的mac目前是: windows+p+q) #可以通过如下指令重新进入该容器...答:attache直接进入容器启动命令的终端,不会启动新的进程。显然此时用exit退出的话会导致容器停止。exec是在容器中打开一个新的终端,启动了新的进程。用exit退出不会导致容器的停止。...容器,使得容器重新加载配置文件: docker restart mysql 6.5、安装mysql —— 主从复制集安装 1、安装主服务器 (1)启动容器实例 docker run -p 3307:

1.4K22

Docker创建MySQL镜像并成功进行远程连接

1.安装 1.1 拉取镜像 docker pull MySQL 拉取成功可以验证一下 docker images 1.2 创建并启动一个mysql容器 docker run --name ly-mysql...root用户的登陆密码 -p:端口映射,此处映射主机3306端口到容器pwc-mysql的3306端口 -d:成功启动容器后输出容器的完整ID....容器的ip docker inspect --format '{{ .NetworkSettings.IPAddress }}' 结果是:172.17.0.2 但是还是连接...PRIVILEGES; 1.4 其他 1.4.1 记录几个命令 1.4.1.1 退出容器 如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器 如果使用exit退出,那么在退出之后会关闭容器,可以使用下面的流程进行恢复...一是进入容器,修改容器里的的配置文件,然后重新启动容器,例如: $ sudo docker exec -it ly-mysql /usr/bin/bash 然后可以进入容器的命令行模式,接着修改 /etc

1.5K10

Docker 容器编排利器 Docker Compose

当配置正确时,不输出任何内容,当配置错误时,输出错误信息。   4.2.2 pull docker compose pull 拉取服务依赖的镜像。...例如在没有启动数据库容器的情况下启动了 Web 应用容器,应用容器会因为找不到数据库而退出。depends_on 就是用来解决容器依赖、启动先后问题的配置项。...ports: - "80:80" - "8080:8080" 5.4.7 expose 容器暴露的端口映射到宿主机,只允许被连接的服务访问。...; on-failure:容器非正常退出时,比如退出状态为非0(异常退出),才会重启容器; always:容器总是重新启动,即使容器被手动停止了,当 Docker 重启时容器也还是会一起启动; unless-stopped...一个具体网络的条目名称 aliases: # 服务别名,可以多个 - nginx1 # 同一网络的其他容器可以使用服务名或此别名连接到服务容器 # 定义网络,可以多个

37510

Docker 总结 ubuntu

依赖于 启动时执行的命令,只要该命令结束,容器就不会退出 创建并启动容器 docker run --name 指定容器名称(NAMES),指定 Docker 会自动给容器分配名称 -d 以后台方式启动容器...privileged 启动容器,可以看到很多 host 的设备,并且可以执行 mount。 甚至允许你在 docker 容器启动 docker 容器。...-password=root [DATABASE] 对于 docker compose 启动的多个容器,可能因为宿主机器变化而导致 docker 容器的 id 有变化,可能在回复数据之后,还需要对数据库连接的地址进行修改才能完整的恢复...docker run -it REPOSITORY bash 启动镜像 --name="容器新名字": 为容器指定一个名称; -d: 后台运行容器,并返回容器ID,也即启动守护式容器; -i:..., 如果 docker attach bayes-svm-knn-container 进入主进程 bash 后,再 Ctrl+D 则会导致主线程退出容器结束, 可以使用 Ctrl+P+Q 退出终止容器运行

2.2K30

Docker系列学习文章 - docker基本使用(四)

然后,我们还会跟大家讲解下如何进入到一个容器里面。最后,我们再跟大家说说如何停止、挂起和删除一个容器。 一、用容器启动一个Nginx/mysql/redis服务 1....那么注意下,这是因为你的宿主机没打开IPv4转发,解决的方法是vim /usr/lib/sysctl.d/00-system.conf文件,然后添加如下代码:net.ipv4.ip_forward=1...,接着重启下宿主机,最后运行sysctl net.ipv4.ip_forward命令查看是否配置生效了,如果返回为“net.ipv4.ip_forward = 1”则表示成功了。...12.png 不过,要注意的是,进入后,如果你 exit 或者按ctr + c 退出容器就会停止运行。 因此这个attach 的方法我们推荐。...这种方式我们比较推荐,一般都是用这种方式进入容器。 三、如何停止、删除容器 我们运行docker ps命令就可以看到当前正在运行的容器服务,下面三个是我们刚才启动的。 14.png 1.

3.4K272

Docker系列学习文章 - 专业化定制镜像dockerfile(六)

其实这样写语法没什么错,运行成功。但是从优雅度和专业度上来说这样写很不合适。因为每写一个RUN命令就等于增加一层镜像。你写N个,那就是N层。而docker镜像的层数目前是有限制的,大概100多层。...CMD指令 CMD 指令是用于指定启动容器默认的主进程命令的。因为容器其实就是进程,它不像虚拟机那样启动运行任何东西也一直静默运行。所以,容器需要有主进程一直持续,不然就会退出。...cat /etc/redhat-release 和 systemctl start mysqld这两个shell命令 有个特点,执行完后就会返回结果退出。因此,sh 到时候也会退出。...比如,启动运行nginx、mysql等,应该是类似这样写: CMD ["nginx", "-g", "daemon off;"] CMD ["/usr/bin/mysqld_safe"] 只要容器里主进程一直运行...,那么容器就不会退出

3.3K311

Linux下Docker的安装及使用

1.背景 类似于电脑,要在朋友的电脑跑你写的Java程序,就得检查他电脑有没有安装Java环境. 类似的,要想在别的电脑跑你写的Python程序,又得检查那台电脑有没有装python....当编译镜像时,要么可以在编译它的电脑运行,要么可以先上传镜像到一个镜像仓库,然后下载到另外一台电脑并运行它。某些仓库是公开的,允许所有人从中拉取镜像,同时也有一些是私有的,仅部分人和机器可接入。...但是,对于前台运行的容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要. 启动时设置-rm选项,这样在容器退出时就能够自动清理容器内部的文件系统....exec -it konga /bin/bash # 在容器中执行了一个ping命令 ping 127.0.0.1 # 退出当前容器 exit 6.4 启动容器 docker start 容器名称...,配置自己网络,所以说容器里的localhost不一定等于宿主机的localhost 网络模式 bridge:桥接docker(默认创建时,指定网络驱动,将使用bridge模式) none:不配置网络

88750

MySQL数据库的各种安装方式【Windows,Linux,Docker】一次都告诉你

官网下载地址: https://dev.mysql.com/downloads/mysql/ 一、windows安装篇 1 软件下载   通过官网下载,如果网速比较慢也可以关注我的公众号在里面直接回复mysql...然后修改密码: alter user 'root'@'localhost' identified by '123456' 然后退出登录测试   好了,到这在Windows中的各种安装MySQL的方式我们就给大家介绍完了...Docker单机版 1.1 在docker hub查找mysql docker search mysql 1.2 下载mysql镜像文件   此处我们下载5.6版本的mysql docker pull...mysql:5.6 1.3 构建容器   镜像下载好后我们可以直接运行启动mysql容器 docker run -p 12345:3306 --name mysql -v /root/mysql/conf...v1 docker volume create --name v2 docker volume create --name v3 运行3个PXC容器 [CLUSTER_NAME PXC集群名字]

45740

SpringCloud(十) - Docker

IMAGE是镜像ID或镜像名称 OPTIONS说明: --name=“容器新名字”:为容器指定一个名称 --rm:退出时删除容器  -d:后台运行容器,并返回容器ID,也即启动守护式容器 -i...3306:3306 mysql:5.7.30 此命令会创建容器,但是启动容器失败,命令不完整,下面实战会重新使用 因为我们服务器本来就安装有mysql所以需要停止mysql服务 service mysqld...commit 运行的容器能在镜像的基础做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像; 4.1.1 拉取一个tomcat镜像并创建运行容器...该指令只能在文件中存在一次,如果有多个,则只执行最后一条。 区别:CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。...must be writable 最后看十查看mysql错误日志,然后根据 错误日志# InnoDB: The innodb_system data file 'ibdata1' must be writable

84220
领券