一、测试服务器准备工作,安装docker,运行容器

本文介绍测试服务器准备工作,先在CentOS系统添加docker - ce源并用yum命令安装docker,创建数据目录和网络接口。接着用docker运行portainer、mysql、tomcat、jenkins等容器,说明了常用参数,还提及各容器运行的注意事项,最后提醒可换源加速镜像下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试服务器准备工作

安装docker

新装好的CentOS是没有docker的,yum安装源里也没有,所以首先我们要先安装docker。
根据docker官网的文档,我们要做的就是先添加docker-ce源,再使用yum命令安装就好,很简单。
使用ssh连接到服务器或者直接进入服务器的命令行运行以下命令就好了:

yum remove docker docker-common docker-selinux docker-engine \
&& yum install -y yum-utils device-mapper-persistent-data lvm2 \
&& yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo \
&& yum install docker-ce -y \
&& systemctl enable docker \
&& systemctl start docker

以上命令就会安装好docker并且作为服务启动。
然后按照我的习惯,会先创建docker的数据目录,作为以后容器映射出来的volume持久化数据,方便以后管理和备份移植等。

mkdir -p /data/docker

然后我也会再创建个docker的网络接口,使用桥接网络的话,容器之间的通信需要在一个网络下。

docker network create -d bridge eaon

用docker运行容器

安装好docker之后,就可以运行一些容器了。为了方便管理docker,我会比较喜欢用portainer这个web gui来配合命令行使用,所以就先运行portainer吧。

使用docker run命令可以运行一个容器,其中比较常用的几个参数先简单说明下,后面就不再提示了。

  • -d: 后台运行,启动容器后在后台运行容器
  • –name: 容器名称,起个名字方便区分和管理容器
  • -p: 端口映射,把容器内的端口映射出来,通过宿主(服务器)IP+端口就可以访问到容器的服务,如果容器内的服务端口是80,想映射到宿主端口81的话,命令中就应该这样写-p 81:80
  • -v: volume映射,可以把容器中的目录映射到宿主的目录中,就可以把数据持久化到服务器上,不然删除容器的时候容器内的数据也会跟着删除的。命令的使用方式-v 宿主目录:容器目录,比如-p /data/docker/nginx:/etc/nginx就可以把容器的/etc/nginx映射到服务器的/data/docker/nginx
  • –restart: 容器的重启方式,有几个选项,always会跟着docker服务运行而启动,unless-stopped除非容器被手动停止,否则会跟着docker服务运行而启动。none或者不设置–restart参数的话,docker服务启动的时候此容器不会跟着启动。

portainer

docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/docker/portainer:/data -v /etc/localtime:/etc/localtime --restart always portainer/portainer

运行完毕后,如果没有报错的话,可以用浏览器打开服务器IP:9000来访问,设置好用户名密码,选择local本地docker,就可以进去管理了。

mysql

开发时使用MySQL 8,不过MySQL 8的默认密码认证插件改成了caching_sha2_password,对于一些老的mysql客户端连接可能有问题, 如果希望改回以前的认证插件,需要先做一点设置:

mkdir -p /data/docker/mysql/conf.d

vi /data/docker/mysql/conf.d/my.cnf

然后在插入以下内容:

[mysqld]
default-authentication-plugin=mysql_native_password

保存退出,如果不需要改认证插件的话,可以直接进行下一步,用docker来运行mysql:

docker run -d --name mysql -p 3306:3306 -v /data/docker/mysql/data:/var/lib/mysql -v /data/docker/mysql/conf.d:/etc/mysql/conf.d -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD="rootpassword" --network=eaon --restart unless-stopped mysql:8

其中的-e MYSQL_ROOT_PASSWORD="rootpassword"是设置root密码为rootpassword,可以自行修改

tomcat

然后服务器上的tomcat也用docker运行,因为docker的目录映射不会改变目录的内容,所以想要把tomcat的几个目录内容保留的话,需要先从容器里面拷贝出来。

mkdir -p /data/docker/tomcat \
&& docker run --name tmp-tomcat-container -d tomcat:9-jre11-slim\
&& docker cp tmp-tomcat-container:/usr/local/tomcat/webapps /data/docker/tomcat/ \
&& docker cp tmp-tomcat-container:/usr/local/tomcat/conf /data/docker/tomcat/ \
&& docker cp tmp-tomcat-container:/usr/local/tomcat/logs /data/docker/tomcat/ \
&& docker rm -f tmp-tomcat-container

这样我们就把tomcat容器里的webapps、conf目录下的文件拷贝到了/data/docker/tomcat/下,这时候我们再把这几个目录映射到想要运行的tomcat容器,就可以很方便地修改设置、部署war了:

docker run -d --name tomcat -p 8080:8080 -v /data/docker/tomcat/webapps:/usr/local/tomcat/webapps -v /data/docker/tomcat/conf:/usr/local/tomcat/conf -v /data/docker/tomcat/logs:/usr/local/tomcat/logs -v /etc/localtime:/etc/localtime -e JAVA_OPTS="-Xms256m -Xmx512m" -e TZ="Asia/Shanghai" --network=eaon --restart unless-stopped tomcat:9-jre11-slim

jenkins

没什么特别需要设置的,就是tomcat用了8080端口,jenkins就换一个8082了

docker run -dit --name jenkins --network=eaon -u root -p 50000:50000 -p 8082:8080 -v /data/docker/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai jenkins/jenkins:lts-jdk11

总结

以上就是docker几个基本容器的运行方式了,第一次运行容器会需要下载镜像到本地,如果觉得太慢的可以去搜一下docker换源的教程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值