debian安装docker(第一次玩docker的体验:从0搭建docker应用)

背景

想玩一些集群的东西,windows有诸多不便利,随决定搭建虚拟机,玩docker。

准备工作

下载安装vmware

我使用的版本为16.0,vmware的安装比较便利,一路Next就行。

下载安装linux Mint 20

不想安装很多东西,希望开箱即用。Liunux Mint自带工具包如jdk等。我使用的版本为Linux Mint-20.2-mate-64bit.iso,安装步骤不赘述,可以参考一下配置:

Mint集成了openjdk,

root@david-virtual-machine:/www# java -version openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

默认情况下,可以通过宿主机访问网络。

下载安装docker

新系统没有自带docker,可以使用下列命令一键安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装完毕,可以使用docker命令了,如:

docker images #查看所有的docker镜像

docker的启动关闭重启命令如下:

service docker restart service docker start service docker stop

也可以使用

systemctl start docker.service systemctl stop docker.service systemctl restart docker.service安装常见的docker应用

  • 1. 安装tomcat

第一步:查找可以安装的docker镜像

root@david-virtual-machine:/usr/bin# docker search tomcat NAME DESCRIPTION STARS OFFICIAL AUTOMATED tomcat Apache Tomcat is an open source implementati… 3150 [OK] tomee Apache TomEE is an all-Apache Java EE certif… 93 [OK] dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 58 [OK] kubeguide/tomcat-app Tomcat image for Chapter 1 31 consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 18 [OK] cloudesire/tomcat Tomcat server, 6/7/8 15 [OK] aallam/tomcat-mysql Debian, Oracle JDK, Tomcat & MySQL 13 [OK] arm32v7/tomcat Apache Tomcat is an open source implementati… 11 rightctrl/tomcat centos , Oracle Java, tomcat application ssl… 7 [OK] arm64v8/tomcat Apache Tomcat is an open source implementati… 6 unidata/tomcat-docker Security-hardened Tomcat Docker container. 5 [OK] amd64/tomcat Apache Tomcat is an open source implementati… 3 jelastic/tomcat An image of the Tomcat Java application serv… 2 fabric8/tomcat-8 Fabric8 Tomcat 8 Image 2 [OK] oobsri/tomcat8 Testing CI Jobs with different names. 2 cfje/tomcat-resource Tomcat Concourse Resource 2 ppc64le/tomcat Apache Tomcat is an open source implementati… 1 picoded/tomcat7 tomcat7 with jre8 and MANAGER_USER / MANAGER… 1 [OK] camptocamp/tomcat-logback Docker image for tomcat with logback integra… 1 [OK] chenyufeng/tomcat-centos tomcat基于centos6的镜像 1 [OK] 99taxis/tomcat7 Tomcat7 1 [OK] i386/tomcat Apache Tomcat is an open source implementati… 1 secoresearch/tomcat-varnish Tomcat and Varnish 5.0 0 [OK] softwareplant/tomcat Tomcat images for jira-cloud testing 0 [OK] s390x/tomcat Apache Tomcat is an open source implementati… 0 root@david-virtual-machine:/usr/bin#

第二步:拉取远程镜像到本地

docker pull tomcat

看一下是否已经成功下载到本地:

docker images

第三步:那我们现在运行一下,看看tomcat是否可以正常使用。

docker run --name tomcat -p 8080:8080 tomcat

使用linux Mint自带的浏览器访问,报错404

第四步:进入tomcat容器查看

docker exec -it tomcat /bin/bash

进去日志目录,查看catalina日志,发现启动正常。

进入webapp目录,发现下面的应用为空的,故访问不到任何资源。同时发现一个webapps.dist目录,保存了以前tomcat的webapp内容。把webapps.dist里的文件复制到webapps里就可以了

cp -r webapps.dist/* webapps

此时通过Linux Mint自带的浏览器可以访问了 。

第五步:通过宿主机直接访问,通过ifconfig命令查看虚拟机ip

ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.217.129 netmask 255.255.255.0 broadcast 192.168.217.255 inet6 fe80::89ca:f88f:b457:dd6d prefixlen 64 scopeid 0x20<link> ether 00:0c:29:6c:a0:f3 txqueuelen 1000 (Ethernet) RX packets 326767 bytes 416637719 (416.6 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 149719 bytes 10233762 (10.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

访问虚拟机的 http://192.168.217.129:8080/不能访问,window10防火墙阻止了请求的发送。修改window10防火墙规则:

  • 转到控制面板>系统和安全> Windows防火墙
  • 转到高级设置
  • 右键单击“入站规则”,然后选择“新建规则”。
  • 添加要打开的端口>单击下一步。
  • 将TCP或UDP协议和端口号添加到下一个窗口中>单击下一步。
  • 选择允许连接>单击下一步。
  • 选择网络类型>单击下一步。
  • 命名规则>单击完成。

新建一个nat映射规则(名称自定义),开放所有端口。

此时使用宿主机浏览器,可以直接访问http://192.168.217.129:8080/的tomcat应用

  • 2.安装mysql镜像

步骤和tomcat相似。

第一步:来查看可用版本

docker search mysql

第二步:拉取官方的最新版本的镜像:

$ docker pull mysql:latest

有一个镜像下载不下来,试了几次都不成功。

查看镜像源:

docker info|grep Mirrors -A 1

遂修改镜像源,创建或修改 /etc/docker/daemon.json 文件

root@david-virtual-machine:/etc/docker# cat daemon.json { "registry-mirrors":["https://hub-mirror.c.163.com","https://registry.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"] }

第三步:使用以下命令来查看是否已安装了 mysql:

debian安装

$ docker images

第四步:安装完成后,我们可以使用以下命令来运行 mysql 容器:

$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

第五步:查看是否安装成功:

docker ps

第五步:通过客户端连接,报错:Authentication plugin 'caching_sha2_password' cannot be loaded

#进入容器 docker exec -it mysql-test bash #然后以root身份登录mysql mysql --user=root --password #输入root的密码(默认为'root')最后运行: ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456';

重新连接

  • 3.安装redis

安装类似流程没有出现问题。

总结

玩docker,最重要的是熟悉docker的各种命令。大致归类如下:

容器生命周期管理

run start/stop/restart kill rm pause/unpause create exec

容器操作

ps inspect top attach events logs wait export port

容器rootfs命令

commit cp diff

镜像仓库

login pull push search

本地镜像管理

images rmi tag build history save load import

info|version

info version

参考资料:

【1】https://blog.csdn.net/ispeasant/article/details/108437391

【2】https://www.runoob.com/docker/ubuntu-docker-install.html

您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友