天天看點

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