-
<h5>什么是Image(鏡像)</h5><ul class=" list-paddingleft-2"><li><p>文件和meta data的集合(root filesystem)</p></li><li><p>分層的,并且每一層都可以添加改變刪除文件,成為一個新的image</p></li><li><p>不同的image可以共享相同的layer</p></li><li><p>Image本身是read-only的</p></li></ul>查看全部
-
1.docker images? ? 查看本地所有image(images其實就是一個文件系統(tǒng))
2.docker run?-p 8080:80 -d daocloud.io/nginx? ? ?執(zhí)行docker容器
-p是做端口映射的,把nginx的80端口映射到本地的8080端口
-d是允許這個程序直接返回,把這個容器作為守護進程來執(zhí)行
3.docker cp index.html containerId://user/share/nginx/html
拷貝一個文件到docker容器
4.docker ps? ?查看當前正在運行的docker容器? ?
5.docker stop containerId? ?停止docker容器命令
6.docker?commit -m 'fun'?containerId? 新容器名字? ? ? ? ? 結(jié)果會產(chǎn)生一個新的image
7.docker rmi imageId? ?刪除沒用的image
8.docker ps -a?列出所有容器
9.docker rm containerId?刪除容器
查看全部 -
docker?linux安裝命令:
命令1:sudo wget -qO- https://get.docker.com?| sh
wget是命令行下載工具,下載后面網(wǎng)址
-q是不讓wget輸出不太多,大寫O-是直接輸出到標準輸出而不是輸出到文件
后面是管道,直接把下載下來的sh腳本進行sh執(zhí)行,該腳本會檢查本地linux版本,下載合適的安裝包
命令2:sudo usermod -aG docker user2(其他用戶名)?
? 就是把user加到?docker組里,就不需要進入root用戶去啟動docker了
命令3:docker?info
查看全部 -
運行一個docker容器實例
簡單使用:docker run 鏡像名稱
帶參數(shù)使用:docker run -p 容器對外暴露的端口:容器內(nèi)部端口 -d(后臺運行)? 鏡像名稱
查看全部 -
修改docker鏡像后制成一個新的鏡像文件
docker commit -m '修改備注' docker容器ID
查看全部 -
停止docker某個鏡像
docker stop 容器ID
查看全部 -
將外部文件拷貝到docker競相內(nèi)
docker cp 宿主機文件 容器ID+容器內(nèi)文件路徑
查看全部 -
docker-compose命令
查看全部 -
docker-compose命令
查看全部 -
容器和宿主機目錄掛載的三種方式:
1.第一種方式:
1234567 #?運行容器內(nèi)部地址nginx用來訪問網(wǎng)頁的地址/usr/share/nginx/html?
docker?run?-d?--name?nginx?-
v
?/usr/share/nginx/html
?nginx
#給出容器的所有信息
docker?inspect?nginx?
>?Mounts.Source??宿主機目錄?[如果是mac,則該路徑不是mac上的實際路徑,因為mac上運行docker是還有一層虛擬層,這是docker虛擬層中的路徑,可以在docker中訪問到]
>?Mounts.Destination:
/usr/share/nginx/html/
?容器目錄
screen
?~
/Library/Containers/com
.docker.docker
/Data/com
.docker.driver.amd64-linux
/tty
?[這個路徑才是mac本身掛載的目錄]
2.第二種方式:
12 #將當前目錄下的html子目錄掛載到容器中中的/var/www/html
docker?run?-p?80:80?-d?-
v
?$PWD
/html
:
/var/www/html
?nginx
3.第三種方式:
123456 #?宿主機目錄:$PWD/data?docker目錄:/var/mydata??容器名:data_container?基礎(chǔ)鏡像:ubuntu
docker?create?-
v
?$PWD
/data
:
/var/mydata
?--name?data_container?ubuntu
#?-it表示使用交互的方式進入容器[默認ubuntu基礎(chǔ)鏡像沒有服務(wù)]
docker?run?-it?--volumes-from?data_container?ubuntu?
/bin/bash
#進入后執(zhí)行mount,可以看到有/var/mydata目錄的掛載信息
mount
查看全部 -
Dockerfile中的每一行都產(chǎn)生一個新層
鏡像分層的原理及其好處:
?分層的好處:假如有很多 container 或者 很多的 Image的話,這些層可以共享。那么存儲壓力會小很多。運行起來方便。
每個一個命令都是一層,只有容器層是RW,鏡像中的各層都是RO
查看全部 -
FROM ubuntu MAINTAINER me@hazyzh.com RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list RUN apt-get update RUN apt-get install -y nginx COPY index.html /var/www/html ENTRYPOINT ["usr/sbin/nginx", "-g", "daemon off;"] EXPOSE 80
查看全部 -
FROM ubuntu MAINTAINER me@hazyzh.com RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list RUN apt-get update RUN apt-get install -y nginx COPY index.html /var/www/html ENTRYPOINT ["usr/sbin/nginx", "-g", "daemon off;"] EXPOSE 80
查看全部 -
使用 Dockerfile 創(chuàng)建鏡像
12345 FROM?alpine:latest????#使用的基礎(chǔ)鏡像
MAINTAINER?xbf????#誰寫的
********
docker?build?-t?hello_docker?.?
(-t:給個標簽,名字叫hello_docker;
'.'
:路徑名,把路徑下所有內(nèi)容送給docker?engine).
查看全部 -
docker run ubuntu echo hello docker :運行一個ubuntu鏡像,并且在其中輸出一個hello docker
docker images : 查看容器中有的對象
docker run -p 8080:80 -d daocloud.io/nigix : -p 端口映射? -d 直接輸出內(nèi)容
通過 docker ps 查看docker中啟動的進程
嘗試在nigix中輸出一些信息(隨便一個網(wǎng)頁假設(shè)是index.html),執(zhí)行如下命令:
docker cp index.html xxxx://usr/share/nigix/html?
解釋:將index.html移動到xxxx(容器的進程id)://(容器里面的路徑)
停止容器: docker stop xxxx(容器id)
重新執(zhí)行第三步,會發(fā)現(xiàn)之前移動進去的index.html已經(jīng)沒有,這是每次對容易的修改是增量修改,需要提交才能生效(其實感覺有點類似于git的分支),因此需要執(zhí)行 :
docker commit -m "修改說明" xxxx(容器的進程id)? 容器的新名字
這個時候在執(zhí)行docker images 就可以看到剛才提交的生成了一個新容器。
刪除掉提交的進程 docker rmi xxx(進程id)
docker ps -a :查看之前運行過的容器
docker rm xx(容器id) xx xx xx? 可通過空格隔開,可以清除容器
查看全部
舉報