這篇文章主要介紹“Docker容器的創(chuàng)建運(yùn)行方式有哪些”,在日常操作中,相信很多人在Docker容器的創(chuàng)建運(yùn)行方式有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Docker容器的創(chuàng)建運(yùn)行方式有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
疊彩網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),疊彩網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為疊彩上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的疊彩做網(wǎng)站的公司定做!
docker run --name some-nginx -p 1080:80 -v /some/content:/usr/share/nginx/html -d nginx
參數(shù)說明:
--name:定義容器名。
-p:宿主機(jī)與容器的端口掛載,格式:宿主機(jī)端口:容器內(nèi)部端口
-v:宿主機(jī)目錄與容器內(nèi)目錄映射,格式:宿主機(jī)目錄:容器內(nèi)部目錄
-d:后臺執(zhí)行
執(zhí)行以上命令就可以啦,這里把容器名取名為some-nginx,把容器的80端口映射到宿主機(jī)的1080端口,容器內(nèi)的/usr/share/nginx/html目錄映射到宿主機(jī)的/some/content目錄,使用的是nginx最新的鏡像,鏡像部分也可以寫成 “nginx:版本”比如“nginx:1.15.1”。
在/some/content創(chuàng)建一個index.html,隨便輸入個內(nèi)容。
訪問下 ip+1080可以看到請求到nginx了。
訪問nginx測試
docker run方式在運(yùn)行簡單的容器方面還是比較方便的。
1.創(chuàng)建一個文件,命名為Dockerfile,輸入以下內(nèi)容。
FROM nginx COPY html /usr/share/nginx/html
FROM nginx 代表以nginx鏡像為基礎(chǔ)構(gòu)建我們的鏡像。
注意需要先在Dockerfile同目錄創(chuàng)建html目錄,不然會報錯。
Dockerfile文件內(nèi)可以自定義鏡像內(nèi)容,有很多指令可以用,比如可以在配置容器創(chuàng)建后運(yùn)行shell腳本等,可以自行查閱,本文僅做一個簡單的用法示例入門。
注意:Dockerfile 的指令每執(zhí)行一次都會在 docker 上新建一層,所以盡量不要寫太多層。
2.在Dockerfile同目錄下運(yùn)行命令創(chuàng)建鏡像
docker build -t my-nginx-image .
注意最后面有一個點(diǎn)。
3.運(yùn)行容器
docker run --name some-nginx -p 1080:80 -d my-nginx-image
在html目錄里新建一個index.html文件隨便輸入個內(nèi)容,訪問下 ip+1080可以看到請求到nginx了。
訪問nginx測試
Dockerfile一般用于自定義鏡像,因?yàn)槭莻€文件,也比命令的方式更易于保存與團(tuán)隊(duì)間共享。
在需要管理多個容器時用以上兩種方式都不太適合,不僅要管理每個容器的配置信息,還要處理容器間的關(guān)系,這時候就需要docker-compose來做容器編排了。
1.創(chuàng)建一個docker-compose.yml文件,輸入以下內(nèi)容
version: "3" services: nginx: image: nginx container_name: some-nginx ports: - "1080:80" volumes: - /some/content:/usr/share/nginx/html
在/some/content創(chuàng)建一個index.html,隨便輸入個內(nèi)容,等會訪問測試。
2.執(zhí)行啟動命令
docker-compose up -d
訪問下 ip+1080可以看到請求到nginx了。
訪問測試
docker-compose.yml文件里可以寫多個容器配置信息,有提供各種配置項(xiàng)用于容器編排。
比如我有一個springboot項(xiàng)目,需要打包成jar包然后創(chuàng)建容器運(yùn)行,需要連接一個數(shù)據(jù)庫容器,最后需要一個nginx容器做請求代理。那么docker-compose.yml文件可以這樣寫。
version: "3" services: MySQL: image: mysql:5.7.26 ports: - "13306:3306" restart: "always" container_name: mysql command: --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' --sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" privileged: true environment: - MYSQL_ROOT_PASSWORD=123456 - TZ="Asia/Shanghai" volumes: - /opt/docker/mysql/conf:/etc/mysql/mysql.conf.d - /etc/localtime:/etc/localtime - /opt/docker/mysql/logs:/var/log/mysql - /opt/docker/mysql/data:/var/lib/mysql my-server: image: java:8 restart: "always" container_name: my-server environment: - TZ="Asia/Shanghai" volumes: - /opt/my-serve/my-serve-0.0.1-SNAPSHOT.jar:/data/my-serve-0.0.1-SNAPSHOT.jar - /etc/localtime:/etc/localtime - /opt/var/logs:/var/logs entrypoint: java -jar /data/my-serve-0.0.1-SNAPSHOT.jar --server.port=18081 nginx: image: nginx container_name: nginx volumes: - /opt/my-serve:/home/nginx - /opt/docker/nginx/conf.d/:/etc/nginx/conf.d/ - /opt/docker/nginx/log/:/var/log/nginx/ - /opt/docker/nginx/html/:/usr/share/nginx/html/ restart: "always" network_mode: "host"
只要執(zhí)行 docker-compose up -d 命令就可以把配置文件內(nèi)的所有容器啟動起來,是不是很方便呢。
在實(shí)際項(xiàng)目中,一般Dockerfile和docker-compose用得比較多,不過現(xiàn)在Kubernetes越來越火,以后可能Kubernetes也會占領(lǐng)市場也不一定。
到此,關(guān)于“Docker容器的創(chuàng)建運(yùn)行方式有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
網(wǎng)站標(biāo)題:Docker容器的創(chuàng)建運(yùn)行方式有哪些
標(biāo)題來源:http://chinadenli.net/article14/jgjsde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站收錄、、品牌網(wǎng)站制作、網(wǎng)站維護(hù)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)