摘要:常用命令容器相關(guān)運行開放端口后臺運行命名設(shè)置環(huán)境變量進入容器交互環(huán)境,實際上是和的組合下面語句會在運行后,執(zhí)行命令。
Docker 常用命令 docker container(容器相關(guān))
1 . run運行
a. --publish/-p 開放端口
docker container run --publish: :
b. --deatch/-d 后臺運行
docker container run --publish: -d :
c. --name 命名container
docker container run --publish: -d --name :
d. --env/-e 設(shè)置環(huán)境變量
docker container run --publish: -d --env = --name :
e. -it進入容器交互環(huán)境,實際上是-i和-t的組合,下面語句會在運行container后,執(zhí)行
docker container run -it --name:
f. --network設(shè)置網(wǎng)絡(luò)。Docker本身有自己的虛擬網(wǎng)絡(luò),通過該命令,可以指定虛擬網(wǎng)絡(luò),也可以指定直接通過NAT使用host網(wǎng)絡(luò),如:--network
g. -v綁定數(shù)據(jù)卷,
docker container run -v: :
h. -v綁定磁盤數(shù)據(jù)卷
docker container run -v: : #path_in_local_mount 可以使用$(pwd)使用shell命令執(zhí)行后的結(jié)果[PS:以此類推,其他語法處也可以使用]
2 . ls container列表
a. 顯示運行中的container
docker container ls
b. 顯示所有container
docker container ls -a
3 . rm 刪除container
a. 刪除指定container
#按照containId刪除 docker container rm#按照名稱刪除 docker container rm name
b. -f強制刪除(可刪除運行中的container)
#按照containId強制刪除 docker container rm -f#按照名稱強制刪除 docker container rm -f name
4 . top 查詢?nèi)萜髦械倪M程
a.查詢?nèi)萜髦械倪M程
b.
#查詢指定containerID的Container進程詳情 docker container top#查詢指定name的Container進程詳情 docker container top
5 . inspect查詢?nèi)萜鞯呐渲迷斍?/p>
a. 返回形式為json結(jié)構(gòu),不返回活動中的容器和進行中的容器狀態(tài)
b.
#查詢指定containerID的Container配置詳情 docker container inspect#查詢指定name的Container配置詳情 docker container tinspectop
c.查看指定docker內(nèi)網(wǎng)ip
docker container insepct --format "{{.NetworkSettings.IPAddress}}"
6 . stats 查詢所有容器的狀態(tài)
a.實時返回container的運行狀態(tài),不顯示容器名稱,只顯示容器ID
docker container stats
b.
#查詢指定containerID的Container配置詳情 docker container stats#查詢指定name的Container配置詳情 docker container stats
7 . exec在container中執(zhí)行命令
a . 當使用這種方式執(zhí)行命令時,使用exit會退出容器,但是容器不會停止
b .
docker container exec -it
8 . start和stop:啟動/停止容器
9 . port查看容器端口映射
#查詢指定containerID的端口映射 docker container portdocker network#查詢指定name的Container的端口映射 docker container port
1 . ls顯示所有網(wǎng)絡(luò)
a.默認網(wǎng)絡(luò)為bridge或者docker0 ,與host以NAT形式通訊
b.host網(wǎng)絡(luò)是跳過docker的虛擬網(wǎng)絡(luò),直連到主機網(wǎng)絡(luò),這種方式犧牲了容器的安全性
c.none網(wǎng)絡(luò)是在容器中移除了eth0只剩下localhost網(wǎng)絡(luò)接口
docker network ls
2 . inspect查看網(wǎng)絡(luò)具體信息
a.以Json形式返回具體的網(wǎng)絡(luò)信息,其中IPAM顯示驅(qū)動名稱,網(wǎng)關(guān)和網(wǎng)段
b.Containers顯示連接到該網(wǎng)絡(luò)的Container信息以為IP地址
docker network inspect
3 . create創(chuàng)建網(wǎng)絡(luò)
a.創(chuàng)建網(wǎng)絡(luò)時默認使用bridge驅(qū)動,在創(chuàng)建的時候也可以指定第三方驅(qū)動來創(chuàng)建含有特定驅(qū)動的網(wǎng)絡(luò),如weave驅(qū)動
b.此命令還有其他選項可以在創(chuàng)建時指定,如:ip等,具體查看help即可
#創(chuàng)建默認驅(qū)動的網(wǎng)絡(luò) docker network create#創(chuàng)建指定驅(qū)動的網(wǎng)絡(luò) docker network create --driver #創(chuàng)建可互相通訊的network docker network create --driver overlay
4 . connect連接指定網(wǎng)絡(luò)到容器
docker network connect
5 . disconnect取消連接指定網(wǎng)絡(luò)到容器
docker network disconnect
6 . 運行時指定需要暴露的端口,這樣能保護docker內(nèi)部的端口,只能在虛擬網(wǎng)絡(luò)里訪問,外部可訪問的只有暴露出的端口
docker machine1.用于創(chuàng)建docker虛擬機,必須同時安裝 virtualbox才能使用
2.也可以使用在下網(wǎng)站創(chuàng)建docker集群:https://labs.play-with-docker...,只能活躍4H
3.也可以使用云服務(wù)例如:https://www.digitalocean.com
#創(chuàng)建虛擬機 docker-machine createDocker Images Dockerfile#ssh連接 docker-machine ssh #查看虛擬機環(huán)境變量 docker-machine env
# NOTE: this example is taken from the default Dockerfile for the official nginx Docker Hub Repo # https://hub.docker.com/_/nginx/ # NOTE: This file is slightly different than the video, because nginx versions have been updated # to match the latest standards from docker hub... but it"s doing the same thing as the video # describes FROM debian:stretch-slim # all images must have a FROM # usually from a minimal Linux distribution like debian or (even better) alpine # if you truly want to start with an empty container, use FROM scratch ENV NGINX_VERSION 1.13.6-1~stretch ENV NJS_VERSION 1.13.6.0.1.14-1~stretch # optional environment variable that"s used in later lines and set as envvar when container is running RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 && NGINX_GPGKEY=573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62; found=""; for server in ha.pool.sks-keyservers.net hkp://keyserver.ubuntu.com:80 hkp://p80.pool.sks-keyservers.net:80 pgp.mit.edu ; do echo "Fetching GPG key $NGINX_GPGKEY from $server"; apt-key adv --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$NGINX_GPGKEY" && found=yes && break; done; test -z "$found" && echo >&2 "error: failed to fetch GPG key $NGINX_GPGKEY" && exit 1; apt-get remove --purge -y gnupg1 && apt-get -y --purge autoremove && rm -rf /var/lib/apt/lists/* && echo "deb http://nginx.org/packages/mainline/debian/ stretch nginx" >> /etc/apt/sources.list && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y nginx=${NGINX_VERSION} nginx-module-xslt=${NGINX_VERSION} nginx-module-geoip=${NGINX_VERSION} nginx-module-image-filter=${NGINX_VERSION} nginx-module-njs=${NJS_VERSION} gettext-base && rm -rf /var/lib/apt/lists/* # optional commands to run at shell inside container at build time # this one adds package repo for nginx from nginx.org and installs it RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log # forward request and error logs to docker log collector EXPOSE 80 443 # expose these ports on the docker virtual network # you still need to use -p or -P to open/forward these ports on host CMD ["nginx", "-g", "daemon off;"] # required: run this command when container is launched # only one CMD allowed, so if there are multiple, last one winsdocker image
1 . build新建Image
在有Dockerfile的目錄下執(zhí)行,新建Image命令
在創(chuàng)建Image的時候,會按照命令一層一層的寫入,建議在dockerfile中將不經(jīng)常變化的層信息寫在上面,把經(jīng)常修改的層寫在下面,這樣當再次床架image時,會根據(jù)SHA1判斷并使用相同的層,以便于提高創(chuàng)建image效率
docker image build -t
2 . history 查看image的layers歷史信息
該命令查看image的層歷史
docker image history
3 . inspect 查看image詳細信息,包含所有的層信息
docker image inspect
4 . ls 查看所有DockerImage列表
docker image inspect
5 . tag 修改image的tag
docker image tag: :
6 . pull 從DockerHub拉取image
docker image pull:
7 . push 推送image到DockerHub
docker image pushdocker volume:
1.ls 查詢所有volume列表
docker volume ls
2.rm 刪除指定volume
docker volume rm
3.inspect 查詢volume信息
docker volume inspect
4.prune 刪除所有未使用的本地數(shù)據(jù)卷
docker volume inspect
5.create 創(chuàng)建數(shù)據(jù)卷
docker volume createDocker Swarm
結(jié)構(gòu)
1 . init 初始化Docker Swarm 單節(jié)點,默認為Leader-Manager,會創(chuàng)建Token供其他Swarm加入(join)時使用,創(chuàng)建Raft協(xié)議
docker swarm init
2 . init --advertise-addr 當創(chuàng)建swarm時指定的host名稱對應(yīng)多個ip地址時,需要具體指定哪個IP
docker swarm init --advertise-addr
3 . join當創(chuàng)建玩一個swarm節(jié)點時,系統(tǒng)會提示如何加入節(jié)點
docker swarm join --token:
4 . join-token獲取Join時需要的token
docker swarm join-token managerdocker node
1 . ls 查看Swarm中的Node列表
只有Swarm-Leader才能使用,Worker不支持
docker node ls
2 . inspect 查看Swarm中的Node詳情
docker node inspect
3 . ps 查看Swarm中的Node狀態(tài)
#查看node整體信息 docker node ps #查看指定node的信息 docker node ps
4 . rm 刪除Swarm中的Node
docker node rm
5 .update 更新swarm節(jié)點
docker node update --docker service#更新接的角色為Manager docker node update --role manager
用于替代docker run
創(chuàng)建后,如果使用docker container rm命令刪除某個container,則Swarm會自動創(chuàng)建一個新的container,以保證整體節(jié)點數(shù)量
1 . create 創(chuàng)建swarm節(jié)點
#創(chuàng)建單節(jié)點 docker service create#創(chuàng)建多節(jié)點 docker service create --replicas
docker 17.10 之后,組要指定--detach true表示后臺運行,若不指定該參數(shù)會同步顯示所有執(zhí)行過程
2 . ls 查看創(chuàng)建的service信息
docker service ls
3 . ps 查看service的任務(wù)信息或者Container信息
docker service ps
4 . update 更新service
相比于docker update,docker service update提供更多更新操作,可用于更新docker配置
docker service update
docker 17.10 之后,組要指定--detach true表示后臺運行,若不指定該參數(shù)會同步顯示所有執(zhí)行過程
5 . rm 刪除service
docker service rm其他
1 . docker swarm 自帶loadbalancer,但是是無狀態(tài)的loadbalancer,不支持session,cookie等機制,可以在docker swarm 集群前置Nginx來實現(xiàn)真正的負載均衡
LoadBalancer
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27601.html
摘要:的主要作用是自己根據(jù)基礎(chǔ)鏡像,重新定制鏡像,而不是直接從官方倉庫拿現(xiàn)成的使用。以接下來要構(gòu)建的環(huán)境來說明下,下面我將要搭建一個的開發(fā)環(huán)境,需要進行配合。它的主要作用是持久化數(shù)據(jù),避免容器銷毀后內(nèi)部數(shù)據(jù)丟失暴露到宿主機的端口。 以前一直使用 Vagrant 作為自己的開發(fā)環(huán)境,并且在上家公司也推行大家采用 Vagrant 作為開發(fā)環(huán)境,保障公司使用的是同一套開發(fā)環(huán)境。隨著docker的流...
摘要:的主要作用是自己根據(jù)基礎(chǔ)鏡像,重新定制鏡像,而不是直接從官方倉庫拿現(xiàn)成的使用。以接下來要構(gòu)建的環(huán)境來說明下,下面我將要搭建一個的開發(fā)環(huán)境,需要進行配合。它的主要作用是持久化數(shù)據(jù),避免容器銷毀后內(nèi)部數(shù)據(jù)丟失暴露到宿主機的端口。 以前一直使用 Vagrant 作為自己的開發(fā)環(huán)境,并且在上家公司也推行大家采用 Vagrant 作為開發(fā)環(huán)境,保障公司使用的是同一套開發(fā)環(huán)境。隨著docker的流...
摘要:安全基準測試工具互聯(lián)網(wǎng)安全中心為容器安全提供了指導方針,這一方針已被和類似的安全基準工具所采用。該容器安全工具可以利用機器學習提供自適應(yīng)威脅保護這是一個可以掃描容器鏡像的托管安全解決方案,它甚至可以允許企業(yè)在它們的環(huán)境內(nèi)執(zhí)行安全策略。 在Docker容器技術(shù)興起的初期,對于許多企業(yè)而言,容器安全問題一直是他們在生產(chǎn)環(huán)境中采用Docker的一大障礙。然而,在過去的一年中,許多開源項目、初...
閱讀 1211·2023-04-26 02:20
閱讀 3337·2021-11-22 14:45
閱讀 4111·2021-11-17 09:33
閱讀 972·2021-09-06 15:00
閱讀 1479·2021-09-03 10:30
閱讀 3837·2021-07-26 22:01
閱讀 990·2019-08-30 15:54
閱讀 531·2019-08-30 15:43