centos中使用docker
安装docker
1.安装前的准备工作
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
这里介绍 Docker CE 的安装使用。
2.首先删除之前的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
4.安装一些必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
5.添加软件源信息 ,这里建议添加淘宝的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6.更新 yum 缓存 强烈建议 我上次忘了设置 结果 执行总是中断
yum makecache fast
7.安装过docker-ce
yum -y install docker-ce
8.启动docker服务
systemctl start docker
9注意事项
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决, 有很多镜像可以给大家选择 ,我这里 使用了三个镜像,大家可以参考一下
首先移动到 安装docker的文件目录下
cd /etc/docker/
ls
daemon.json
如果你没有看到 daemon.json 文件 ,那么请自己创建一个
该文件内容为
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
docker中创建tomcat的镜像
1.查找DockerHub的镜像
docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementa... 744 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba... 19 [OK]
consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 16 [OK]
consol/tomcat-8.0 Tomcat 8.0.15, 8080, "admin/admin" 14 [OK]
cloudesire/tomcat Tomcat server, 6/7/8 8 [OK]
davidcaste/alpine-tomcat Apache Tomcat 7/8 using Oracle Java 7/8 wi... 6 [OK]
andreptb/tomcat Debian Jessie based image with Apache Tomc... 4 [OK]
kieker/tomcat 2 [OK]
fbrx/tomcat Minimal Tomcat image based on Alpine Linux 2 [OK]
jtech/tomcat Latest Tomcat production distribution on l... 1 [OK]
2.开始拉取镜像
docker pull tomcat
3.我们就可以在本地镜像列表里查到tomcat的镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8.5.37-jre8 7ee26c09afb3 7 days ago 462MB
4.通过镜像文件来 创建一个容器对象
docker run --name tt -p 8088:8080 tomcat
--name 为设置的别名
-p 映射宿主机和容器的ip关系
tomcat 为镜像的名字
平时需要在后台执行的时候 需要添加参数 -d
docker中创建nginx镜像 已经配置
1.首先查找nginx镜像
docker search nginx
2.然后拉取镜像
docker pull nginx
3.查看获取的镜像
docker images
4.启动nginx容器
docker run -d -p 80:80 nginx
使用宿主机配置文件启动镜像
1.创建一个挂载目录
mkdir -p /home/nginx/{conf,conf.d,html,logs}
2.编写nginx.conf配置文件,并放在文件conf夹中
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
upstream tomcat_client {
server t1:8080 weight=1;
server t2:8080 weight=1;
}
server {
server_name "";
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
location / {
proxy_pass http://tomcat_client;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
其中 server 后需要设置的 tomcat 容器的别名 和容器的端口号
3.运行nginx容器
docker run --name mynginx -d -p 80:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx nginx
遇到的问题
1.
如果启动后无法访问代理的tomcat 需要注意的是,因为tomcat也是容器,需要配置容器和容器之间的网络访问
需要创建一个 network
docker network create web_net
然后创建容器的时候指定网络
docker run -it --name t1 -p 8081:8080 -d -v /home/tomcat/webapps/:/usr/local/tomcat/webapps/ --network web_net --network-alias t1 tomcat
docker run -it --name t2 -p 8082:8080 -d -v /home/tomcat/webapps/:/usr/local/tomcat/webapps/ --network web_net --network-alias t2 tomcat
docker run --name myx -d -p 80:80 --network web_net --network-alias n1 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx nginx
2.
在容器安装软ping命令的方法
1
apt-get update
2
apt-get install iputils-ping