天天看点

Centos安装dockercentos中使用docker

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://1wivtlse.mirror.aliyuncs.com","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
           

3.登陆到容器的命令为

docker exec  -it  容器id   /bin/bash
           

4.docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面

从容器里面拷文件到宿主机?

docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
           

从宿主机拷文件到容器里面

docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js