想玩一些集群的东西,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:
$ 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
最新评论