自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Docker容器的三種創(chuàng)建運行方式,一個比一個好用

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

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

[[353237]]

我們來看下有幾種方式的具體用法吧。本文需要先安裝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了。

 

Docker容器的三種創(chuàng)建運行方式,一個比一個好用

 

訪問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了。

 

Docker容器的三種創(chuàng)建運行方式,一個比一個好用

 

訪問nginx測試

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

方式三: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容器的三種創(chuàng)建運行方式,一個比一個好用

 

訪問測試

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)容就到這了。希望對你有所幫助。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2019-08-26 19:03:58

2023-01-12 08:47:26

二項式楊輝斐波那契

2021-06-23 16:40:58

JavaTomcatWeb

2018-12-17 09:10:52

機器學(xué)習(xí)TensorFlow容器

2024-08-20 21:27:04

docker部署容器

2010-02-26 09:36:51

RIA

2017-08-23 08:09:11

UDPDocker容器

2022-07-21 09:50:20

Python日期庫pendulum

2014-05-26 09:13:46

DockerPython

2021-09-02 05:37:22

Containerd Kubernetes 容器

2020-11-09 06:38:00

ninja構(gòu)建方式構(gòu)建系統(tǒng)

2019-12-09 15:00:48

TomcatServlet容器

2009-08-19 04:14:00

線性鏈表

2024-02-26 18:11:08

Docker容器鏡像

2016-09-26 17:26:20

2013-01-14 15:41:27

Android模擬器教程配置

2021-12-30 09:40:33

CentOS家庭實驗室Linux

2016-03-08 09:52:22

xcode插件開發(fā)

2024-07-19 10:31:15

2010-11-11 09:13:58

超高密度服務(wù)器HP戴爾
點贊
收藏

51CTO技術(shù)棧公眾號