docker 配置jar ,運行

阿里雲:java

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repomysql

https://download.docker.com/linux/centos/docker-ce.repo
linux

****curl url #能夠看一下網絡通不通nginx

****虛擬機的時候,設置兩個網卡:一個host-only,一個natspring

1、docker基本操做sql

一、安裝 docker

 #能夠查看docker有沒有鏡像
$ docker search XXX
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repohttps://download.docker.com/linux/centos/docker-ce.repo
# 關閉防火牆和selinux
$ systemctl stop firewalld
$ setenforce 0

 
 運行 (root帳號執行啓動)
json

$ sudo systemctl start docker

 

 二、安裝鏡像vim

# docker images
[root@bogon docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              e38bc07ac18e        5 weeks ago         1.85kB
centos              latest              e934aafc2206        5 weeks ago         199MB

[root@bogon docker]# docker run -ti e934
進入鏡像,退出
[root@cf085ef769b3 /]# exit

三、一些常見命令(這部分有粘貼,若是侵權,聯繫刪除)centos

一、docker -h 幫助
2、獲取鏡像
sudo docker pull NAME[:TAG]
sudo docker pull centos:latest
3、啓動Container盒子
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
sudp docker run -t -i contos /bin/bash
4、查看鏡像列表,列出本地的全部images
sudo docker images [OPTIONS] [NAME]
sudo docker images centos
5、查看容器列表,可看到咱們建立過的全部container
sudo docker ps [OPTIONS]
sudo docker ps -a
6、刪除鏡像,從本地刪除一個已經下載的鏡像
sudo docker rmi IMAGE [IMAGE...]
sudo docker rmi centos:latest
7、移除一個或多個容器實例
sudo docker rm [OPTIONS] CONTAINER [CONTAINER...]
移除全部微運行的容器
sudo docker rm sudo docker ps -aq
8、中止一個正在運行的容器
sudo docker kill [OPTIONS] CONTAINER [CONTAINNER...]
sudo docker kill 026e
9、重啓一個正在運行的容器
sudo docker restart [OPTIONS] contains[CONTAINER]
sudo docker restart 026e
10、中止一個已經中止的容器
sudo docker start [OPTIONS] CONTAINER [CONTAINER..]
sudo docker start 026e

四、外界訪問,用 docker run -ti 訪問,外界沒法訪問,要加映射

安裝jdk,搜索安裝
yum search java|grep jdk
yum install java-1.8.0-openjdk

  查看jdk版本

  java -version

五、安裝一個jdk的鏡像

#這個應該不太對,這個是整個java的
#安裝一個jdk的鏡像
sudo docker pull java

在相應的目錄項建立文件

(建立目錄 mkdir dockerInfo

  建立文件 touch Dockerfile)

[root@bogon dockerInfo]# ls
Dockerfile  javastudy.jar  run.sh

六、編輯文件

#Dockerfile文件內容

FROM java
ADD javastudy.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

#說明
dockerfile的基礎命令FROM:
指爲當前的環境引入一個基礎鏡像(nginx環境之上的linux內核鏡像)
RUN:運行指令(apt install vim類似的指令)
CMD:執行命令(和run很類似,可是一個dockerfile只能有一個cmd指令,若有 多個最後一個生效)
LABEL:設置標籤(相似爲變量賦值)
EXPOSE:暴露端口號(解除斷口的防火牆)
ENV:設置環境變量
COPY:複製到指定地方
ADD: copy指令的高級版(具備解壓功能)
ENTRYPOINT:切入點(如run功能類似,可是能夠覆蓋CMD的內容)
VOLUME:掛載的做用
USER:指定容器的用戶
WORKDIR:若是目錄存在 cd到指定目錄,不存在則建立並cd到指定目錄
ARG:表示變量
                                              

七、建立新的鏡像

#其中 -t 標記來添加 tag,指定新的鏡像的用戶信息。「.」 是 Dockerfile 所在的路徑(當前目錄),也能夠替換爲一個具體的 Dockerfile 的路徑。
#注意最後的那個 .
# -t 說明的鏡像名稱,沒有-f,是默認當前目錄下的Dockerfile
#有-f,是指定目錄,還有,每次需改Dockerfile,須要修改鏡像
sudo docker build -t springboottest .

#修改鏡像(大概是這樣,沒試過)
docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2

#刪除鏡像
docker images
#記住鏡像的Id
docker ps -a
#查看鏡像下的容器
docker rm 容器id
#刪除全部的容器
docker rm $(docker ps -a -q)
#在刪除鏡像 docker rmi 鏡像id

八、運行

#內部運行 不推薦,
docker run -ti springboottest

#設置端口號
docker run -d -p 8080:8080 springboottest

就能夠訪問了
http://Ip:8080

 2、Nginx的安裝使用

 一、鏡像

#查看docker有沒有鏡像
docker search nginx
#查看到最新的
docker pull nginx
#能夠查到 nginx的鏡像
docker images

二、運行,分配端口80

#運行,分配端口80
docker run -d -p 80:80 nginx
#能夠訪問IP,80是默認端口

三、使用配置

#查看容器Id
docker ps
#進入容器
docker inspect 容器Id號

#還有另一種方法
$ sudo docker ps  
$ sudo docker exec -ti 容器Id /bin/bash

#vi 和vim沒有找到命令,安裝一下命令
$ apt-get update
$apt-get install vim

#查看nginx配置
$ cd /etc/nginx/
$ vi nginx.conf
#nginx.conf說明

########### 每一個指令必須有分號結束。#################
#user administrator administrators;  #配置用戶或者組,默認爲nobody nobody。
#worker_processes 2;  #容許生成的進程數,默認爲1
#pid /nginx/pid/nginx.pid;   #指定nginx進程運行文件存放地址
error_log log/error.log debug;  #制定日誌路徑,級別。這個設置能夠放入全局塊,http塊,server塊,級別以此爲:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;   #設置網路鏈接序列化,防止驚羣現象發生,默認爲on
    multi_accept on;  #設置一個進程是否同時接受多個網絡鏈接,默認爲off
    #use epoll;      #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大鏈接數,默認爲512
}
http {
    include       mime.types;   #文件擴展名與文件類型映射表
    default_type  application/octet-stream; #默認文件類型,默認爲text/plain
    #access_log off; #取消服務日誌    
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定義格式
    access_log log/access.log myFormat;  #combined爲日誌格式的默認值
    sendfile on;   #容許sendfile方式傳輸文件,默認爲off,能夠在http塊,server塊,location塊。
    sendfile_max_chunk 100k;  #每一個進程每次調用傳輸數量不能大於設定的值,默認爲0,即不設上限。
    keepalive_timeout 65;  #鏈接超時時間,默認爲75s,能夠在http,server,location塊。

    upstream mysvr {   
      server 127.0.0.1:7878;
      server 192.168.10.121:3333 backup;  #熱備
    }
    error_page 404 https://www.baidu.com; #錯誤頁
    server {
        keepalive_requests 120; #單鏈接請求上限次數。
        listen       4545;   #監聽端口
        server_name  127.0.0.1;   #監聽地址       
        location  ~*^.+$ {       #請求的url過濾,正則匹配,~爲區分大小寫,~*爲不區分大小寫。
           #root path;  #根目錄
           #index vv.txt;  #設置默認頁
           proxy_pass  http://mysvr;  #請求轉向mysvr 定義的服務器列表
           deny 127.0.0.1;  #拒絕的ip
           allow 172.18.5.54; #容許的ip           
        }
    }
}

 3、mysql

#鏡像
$ docker pull mysql#運行mysql$ docker run -d -P mysql
相關文章
相關標籤/搜索