摘要:常用命令容器相关运行开放端口后台运行命名设置环境变量进入容器交互环境,实际上是和的组合下面语句会在运行后,执行命令。
Docker 常用命令 docker container(容器相关)
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 设置环境变量
docker container run --publish: -d --env = --name :
e. -it进入容器交互环境,实际上是-i和-t的组合,下面语句会在运行container后,执行
docker container run -it --name:
f. --network设置网络。Docker本身有自己的虚拟网络,通过该命令,可以指定虚拟网络,也可以指定直接通过NAT使用host网络,如:--network
g. -v绑定数据卷,
docker container run -v: :
h. -v绑定磁盘数据卷
docker container run -v: : #path_in_local_mount 可以使用$(pwd)使用shell命令执行后的结果[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 查询容器中的进程
a.查询容器中的进程
b.
#查询指定containerID的Container进程详情 docker container top#查询指定name的Container进程详情 docker container top
5 . inspect查询容器的配置详情
a. 返回形式为json结构,不返回活动中的容器和进行中的容器状态
b.
#查询指定containerID的Container配置详情 docker container inspect#查询指定name的Container配置详情 docker container tinspectop
c.查看指定docker内网ip
docker container insepct --format "{{.NetworkSettings.IPAddress}}"
6 . stats 查询所有容器的状态
a.实时返回container的运行状态,不显示容器名称,只显示容器ID
docker container stats
b.
#查询指定containerID的Container配置详情 docker container stats#查询指定name的Container配置详情 docker container stats
7 . exec在container中执行命令
a . 当使用这种方式执行命令时,使用exit会退出容器,但是容器不会停止
b .
docker container exec -it
8 . start和stop:启动/停止容器
9 . port查看容器端口映射
#查询指定containerID的端口映射 docker container portdocker network#查询指定name的Container的端口映射 docker container port
1 . ls显示所有网络
a.默认网络为bridge或者docker0 ,与host以NAT形式通讯
b.host网络是跳过docker的虚拟网络,直连到主机网络,这种方式牺牲了容器的安全性
c.none网络是在容器中移除了eth0只剩下localhost网络接口
docker network ls
2 . inspect查看网络具体信息
a.以Json形式返回具体的网络信息,其中IPAM显示驱动名称,网关和网段
b.Containers显示连接到该网络的Container信息以为IP地址
docker network inspect
3 . create创建网络
a.创建网络时默认使用bridge驱动,在创建的时候也可以指定第三方驱动来创建含有特定驱动的网络,如weave驱动
b.此命令还有其他选项可以在创建时指定,如:ip等,具体查看help即可
#创建默认驱动的网络 docker network create#创建指定驱动的网络 docker network create --driver #创建可互相通讯的network docker network create --driver overlay
4 . connect连接指定网络到容器
docker network connect
5 . disconnect取消连接指定网络到容器
docker network disconnect
6 . 运行时指定需要暴露的端口,这样能保护docker内部的端口,只能在虚拟网络里访问,外部可访问的只有暴露出的端口
docker machine1.用于创建docker虚拟机,必须同时安装 virtualbox才能使用
2.也可以使用在下网站创建docker集群:https://labs.play-with-docker...,只能活跃4H
3.也可以使用云服务例如:https://www.digitalocean.com
#创建虚拟机 docker-machine createDocker Images Dockerfile#ssh连接 docker-machine ssh #查看虚拟机环境变量 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的目录下执行,新建Image命令
在创建Image的时候,会按照命令一层一层的写入,建议在dockerfile中将不经常变化的层信息写在上面,把经常修改的层写在下面,这样当再次床架image时,会根据SHA1判断并使用相同的层,以便于提高创建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 删除所有未使用的本地数据卷
docker volume inspect
5.create 创建数据卷
docker volume createDocker Swarm
结构
1 . init 初始化Docker Swarm 单节点,默认为Leader-Manager,会创建Token供其他Swarm加入(join)时使用,创建Raft协议
docker swarm init
2 . init --advertise-addr 当创建swarm时指定的host名称对应多个ip地址时,需要具体指定哪个IP
docker swarm init --advertise-addr
3 . join当创建玩一个swarm节点时,系统会提示如何加入节点
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状态
#查看node整体信息 docker node ps #查看指定node的信息 docker node ps
4 . rm 删除Swarm中的Node
docker node rm
5 .update 更新swarm节点
docker node update --docker service#更新接的角色为Manager docker node update --role manager
用于替代docker run
创建后,如果使用docker container rm命令删除某个container,则Swarm会自动创建一个新的container,以保证整体节点数量
1 . create 创建swarm节点
#创建单节点 docker service create#创建多节点 docker service create --replicas
docker 17.10 之后,组要指定--detach true表示后台运行,若不指定该参数会同步显示所有执行过程
2 . ls 查看创建的service信息
docker service ls
3 . ps 查看service的任务信息或者Container信息
docker service ps
4 . update 更新service
相比于docker update,docker service update提供更多更新操作,可用于更新docker配置
docker service update
docker 17.10 之后,组要指定--detach true表示后台运行,若不指定该参数会同步显示所有执行过程
5 . rm 删除service
docker service rm其他
1 . docker swarm 自带loadbalancer,但是是无状态的loadbalancer,不支持session,cookie等机制,可以在docker swarm 集群前置Nginx来实现真正的负载均衡
LoadBalancer
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27601.html
摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...
摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...
摘要:安全基准测试工具互联网安全中心为容器安全提供了指导方针,这一方针已被和类似的安全基准工具所采用。该容器安全工具可以利用机器学习提供自适应威胁保护这是一个可以扫描容器镜像的托管安全解决方案,它甚至可以允许企业在它们的环境内执行安全策略。 在Docker容器技术兴起的初期,对于许多企业而言,容器安全问题一直是他们在生产环境中采用Docker的一大障碍。然而,在过去的一年中,许多开源项目、初...
阅读 1176·2023-04-26 02:20
阅读 3278·2021-11-22 14:45
阅读 4071·2021-11-17 09:33
阅读 946·2021-09-06 15:00
阅读 1446·2021-09-03 10:30
阅读 3801·2021-07-26 22:01
阅读 959·2019-08-30 15:54
阅读 488·2019-08-30 15:43