日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Docker容器的三種創(chuàng)建運行方式,一個比一個好用

 現(xiàn)在的項目部署運維中,使用Docker容器越來越多,Docker給我們提供創(chuàng)建容器的方式也有好幾種,主要是docker run命令、Dockerfile文件、docker-compose三種方式,一個比一個方便。

我們來看下有幾種方式的具體用法吧。本文需要先安裝docker和docker-compose,不懂安裝的可以看我的另外兩篇文章centos7安裝docker docker-compose安裝 ,非常方便就可以安裝好,

以創(chuàng)建一個Nginx容器為例。

方式一:docker run命令方式

 
 
 
 
  1. docker run --name some-nginx -p 1080:80 -v /some/content:/usr/share/nginx/html -d nginx 

參數(shù)說明:

--name:定義容器名。

-p:宿主機與容器的端口掛載,格式:宿主機端口:容器內(nèi)部端口

-v:宿主機目錄與容器內(nèi)目錄映射,格式:宿主機目錄:容器內(nèi)部目錄

-d:后臺執(zhí)行

執(zhí)行以上命令就可以啦,這里把容器名取名為some-nginx,把容器的80端口映射到宿主機的1080端口,容器內(nèi)的/usr/share/nginx/html目錄映射到宿主機的/some/content目錄,使用的是nginx最新的鏡像,鏡像部分也可以寫成 “nginx:版本”比如“nginx:1.15.1”。

在/some/content創(chuàng)建一個index.html,隨便輸入個內(nèi)容。

訪問下 ip+1080可以看到請求到nginx了。

訪問nginx測試

docker run方式在運行簡單的容器方面還是比較方便的。

方式二:Dockerfile配置文件構(gòu)建鏡像方式

1.創(chuàng)建一個文件,命名為Dockerfile,輸入以下內(nèi)容。

 
 
 
 
  1. FROM nginx 
  2. COPY html /usr/share/nginx/html 

FROM nginx 代表以nginx鏡像為基礎(chǔ)構(gòu)建我們的鏡像。

注意需要先在Dockerfile同目錄創(chuàng)建html目錄,不然會報錯。

Dockerfile文件內(nèi)可以自定義鏡像內(nèi)容,有很多指令可以用,比如可以在配置容器創(chuàng)建后運行shell腳本等,可以自行查閱,本文僅做一個簡單的用法示例入門。

注意:Dockerfile 的指令每執(zhí)行一次都會在 docker 上新建一層,所以盡量不要寫太多層。

2.在Dockerfile同目錄下運行命令創(chuàng)建鏡像

 
 
 
 
  1. docker build -t my-nginx-image . 

注意最后面有一個點。

3.運行容器

 
 
 
 
  1. docker run --name some-nginx -p 1080:80 -d my-nginx-image 

在html目錄里新建一個index.html文件隨便輸入個內(nèi)容,訪問下 ip+1080可以看到請求到nginx了。

訪問nginx測試

Dockerfile一般用于自定義鏡像,因為是個文件,也比命令的方式更易于保存與團隊間共享。

方式三:docker -compose方式

在需要管理多個容器時用以上兩種方式都不太適合,不僅要管理每個容器的配置信息,還要處理容器間的關(guān)系,這時候就需要docker-compose來做容器編排了。

1.創(chuàng)建一個docker-compose.yml文件,輸入以下內(nèi)容

 
 
 
 
  1. version: "3" 
  2. services: 
  3.   nginx: 
  4.     image: nginx 
  5.     container_name: some-nginx 
  6.     ports: 
  7.       - "1080:80" 
  8.     volumes: 
  9.       - /some/content:/usr/share/nginx/html 

在/some/content創(chuàng)建一個index.html,隨便輸入個內(nèi)容,等會訪問測試。

2.執(zhí)行啟動命令

 
 
 
 
  1. docker-compose up -d 

訪問下 ip+1080可以看到請求到nginx了。

訪問測試

docker-compose.yml文件里可以寫多個容器配置信息,有提供各種配置項用于容器編排。

比如我有一個springboot項目,需要打包成jar包然后創(chuàng)建容器運行,需要連接一個數(shù)據(jù)庫容器,最后需要一個nginx容器做請求代理。那么docker-compose.yml文件可以這樣寫。

 
 
 
 
  1. version: "3" 
  2. services: 
  3.   mysql: 
  4.     image: mysql:5.7.26 
  5.     ports: 
  6.       - "13306:3306"   
  7.     restart: "always" 
  8.     container_name: mysql 
  9.     command: 
  10.       --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max_connections=1000 --default-storage-engine=INNODB --lower_case_table_names=1 --default-time_zone='+8:00' 
  11.       --sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
  12.     privileged: true     
  13.     environment: 
  14.       - MYSQL_ROOT_PASSWORD=123456 
  15.       - TZ="Asia/Shanghai" 
  16.     volumes:   
  17.       - /opt/docker/mysql/conf:/etc/mysql/mysql.conf.d 
  18.       - /etc/localtime:/etc/localtime 
  19.       - /opt/docker/mysql/logs:/var/log/mysql 
  20.       - /opt/docker/mysql/data:/var/lib/mysql 
  21.   my-server: 
  22.     image: java:8 
  23.     restart: "always" 
  24.     container_name: my-server 
  25.     environment: 
  26.       - TZ="Asia/Shanghai" 
  27.     volumes:   
  28.       - /opt/my-serve/my-serve-0.0.1-SNAPSHOT.jar:/data/my-serve-0.0.1-SNAPSHOT.jar 
  29.       - /etc/localtime:/etc/localtime 
  30.       - /opt/var/logs:/var/logs 
  31.     entrypoint: java -jar /data/my-serve-0.0.1-SNAPSHOT.jar --server.port=18081 
  32.   nginx: 
  33.     image: nginx 
  34.     container_name: nginx 
  35.     volumes: 
  36.       - /opt/my-serve:/home/nginx 
  37.       - /opt/docker/nginx/conf.d/:/etc/nginx/conf.d/ 
  38.       - /opt/docker/nginx/log/:/var/log/nginx/ 
  39.       - /opt/docker/nginx/html/:/usr/share/nginx/html/ 
  40.     restart: "always" 
  41.     network_mode: "host" 

只要執(zhí)行 docker-compose up -d 命令就可以把配置文件內(nèi)的所有容器啟動起來,是不是很方便呢。

在實際項目中,一般Dockerfile和docker-compose用得比較多,不過現(xiàn)在Kubernetes越來越火,以后可能Kubernetes也會占領(lǐng)市場也不一定。

好了本次內(nèi)容就到這了。希望對你有所幫助。


網(wǎng)頁標題:Docker容器的三種創(chuàng)建運行方式,一個比一個好用
本文路徑:http://www.5511xx.com/article/codhsop.html