docker命令详解
Docker系列二:docker常用命令总结
Docker系列⼆:docker常⽤命令总结容器⽣命周期管理1.docker run创建⼀个新的容器并运⾏⼀个命令docker run [options] image [command] [arg...]-a stdin:指定标准输⼊输出内容类型,可选STDIN/STDOUT/STDERR-d: 后台运⾏容器,并返回容器ID-i: 以交互式运⾏容器,通常与-t同时使⽤-p: 端⼝映射,格式为主机(宿主)端⼝:容器端⼝-t: 为容器重新分配⼀个伪输⼊终端,通常与-i同时使⽤--name="name": 为容器指定⼀个名称--dns 8.8.8.8: 为容器指定⼀个dns服务器,默认与宿主⼀致--dns-search domain:为容器指定⼀个DNS域名,默认与宿主⼀致-h "hostname": 指定容器的hostname-e arg="value": 设置环境变量-env-file=[]:从指定⽂件读⼊环境变量--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定的cpu运⾏-m: 设置容器使⽤内存最⼤值--net="bridge": 指定容器的⽹络连接类型,⽀持bridge/host/none/container四种类型--link=[]:添加链接到另外⼀个容器--expose=[]:开放⼀个端⼝或⼀组端⼝,宿主机使⽤随机端⼝映射到开放的端⼝#实例docker run --name mynginx -d nginx:latest# 映射多个端⼝docker run -p 80:80/tcp -p 90:90 -v /data:/data -d nginx:latestdocker run -p 127.0.0.1:80:8080/tcp ubuntu bashdocker run -it nginx:latest /bin/bash2.start/stop/restart命令启动/关闭/重启容器docker start/stop/restart [options] container [container...]3.kill命令杀掉⼀个运⾏中的容器-s:向容器发送⼀个信号docker kill -s KILL mynginx4.rm命令删除⼀个或多个容器-f:通过SIGKILL信号强制删除⼀个运⾏中的容器-l:移除容器间的⽹络连接,⽽⾮容器本⾝-v:-v删除与容器关联的卷docker rm -f db01 db02docker rm -l dbdocker rm -v nginx015.pause/unpause命令pause暂停,unpause恢复docker pause [OPTIONS] CONTAINER [CONTAINER...]docker unpause [OPTIONS] CONTAINER [CONTAINER...]6.create命令创建⼀个容器,但不启动它(⽤法类似docker run)docker create --name mynginx nginx:latest7.exec命令docker exec:在运⾏的容器中执⾏命令-d:分离模式:在后台运⾏-i:及时没有附加也保持STDIN打开-t:分配⼀个伪终端docker exec -it mynginx /bin/bash /root/secript.shdocker exec -i -t mynginx /bin/bash # 使⽤该命令可以分配⼀个伪终端执⾏命令, 使⽤exit推出时,docker容器不会⾃动关闭容器操作1.PS列出容器-a: 显⽰所有容器,包括未运⾏的-f: 根据条件过滤显⽰的内容--format: 指定返回值的模板⽂件-l: 显⽰最近创建的容器-n: 列出最近创建的n个容器--no-trunc: 不截断输出-q: 静默模式,值显⽰容器编号-s: 显⽰总⽂件⼤⼩docker psdocker ps -n 5docker ps -a -q2.inspect获取容器/镜像的元数据-f: 指定返回值的模板-s: 显⽰总的⽂件⼤⼩--type: 为指定类型返回JSONdocker inspect mysql:5.6docker inspect --format='{{range works}}{{.IPAddress}}{{end}}' mymysql3.top查看容器中运⾏的进⾏信息,⽀持ps命令参数docker top [options] container [ps options]docker top mymysql4.attach连接到运⾏中的容器docker attach [options] container# --sig-proxy=false加上参数容器还是会退出(通过ctrl+D退出容器)docker attach --sig-proxy=false mynginx5.events从服务器获取实时时间(监听)-f: 根据条件过滤事件--since:从指定的时间戳后显⽰所有事件--until:流⽔时间显⽰到指定的时间为⽌如果不加任何参数,监听当前事件docker events6.logs获取容器的⽇志(容器中输出到STDOUT,STDERR中的⽇志)-f: 跟踪⽇志输出--since: 显⽰某个时间开始的所有⽇志-t: 显⽰时间戳--tail: 仅列出最新n条容器⽇志docker logs -f mynginx7.wait阻塞运⾏直到容器停⽌,然后打印它的退出代码docker wait container8.export将容器的⽂件系统作为⼀个tar归档⽂件导出到stdoutdocker export -o mysql-`data +%Y%m%d`.tar a404c6c174a29.port列出指定的容器的端⼝映射或者查找将PRIVATE_PORT NAT到⾯向公众的端⼝docker port mysql10.update更新容器的⼀些配置(内存,cpu,是否⾃动启动), 修改内存时,虚拟机必须是关机状态,否则报错未知参数root@bogon:~# docker update --helpUsage: docker update [OPTIONS] CONTAINER [CONTAINER...]Update configuration of one or more containersOptions:--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0) --cpu-period int Limit CPU CFS (Completely Fair Scheduler) period--cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota--cpu-rt-period int Limit the CPU real-time period in microseconds--cpu-rt-runtime int Limit the CPU real-time runtime in microseconds-c, --cpu-shares int CPU shares (relative weight)--cpus decimal Number of CPUs--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)--kernel-memory bytes Kernel memory limit-m, --memory bytes Memory limit--memory-reservation bytes Memory soft limit--memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap--restart string Restart policy to apply when a container exitsroot@bogon:~# docker update --memory-swap 10240000 -m 10240000 portainer容器rootfs命令mit从容器创建⼀个新的镜像-a: 提交的镜像作者-c: 使⽤dockerfile指令来创建镜像-m: 提交时的说明⽂字-p: 在提交时,将容器暂停docker commit -a "" -m "my apache" a404c6c174a2 myapache:v12.cp⽤于容器和主机之间的数据拷贝docker cp [options] container:src_path dest_pathdocker cp [options] src_path container:dest_pathdocker cp /www/runoob 96f7f14e99ab:/www/docker cp 96f7f14e99ab:/www/ /www/runoob3.diff检查容器⾥⽂件结构的修改docker diff [options] containerdocker diff mymysql镜像仓库1.login/logout登陆docker hub公共仓库(需要⾃⼰去注册)docker login [options] [server]docker logout [options] [server]-u: 登陆的⽤户名-p: 登陆的密码2.pull从镜像仓库中拉取或更新指定镜像docker pull [options] name[:tag|@DIGEST]-a: 拉取所有tagged镜像--disable-content-trust: 忽略镜像的校验,默认开启# 下载最新版java镜像docker pull java3.push将本地镜像上传到镜像仓库,要先登陆到镜像仓库docker push [options] name[:tag]--disable-content-trust: 忽略镜像的校验,默认开启docker push myapache:v14.search在docker hub查找镜像docker search [options] term--automated: 只列出automated build类型的镜像--no-trunc: 显⽰完整的镜像描述-s: 列出收藏数⼩于指定值的镜像docker search -s 10 java本地镜像管理1.images列出本地镜像docker images [options] [repository:tag]-a: 列出本地所有镜像(含中间映像层,默认过滤中间映像层) --digests: 显⽰镜像的摘要信息(MD5值)-f: 显⽰满⾜条件的镜像--format: 指定返回值的模版⽂件--no-trunc: 显⽰完整的镜像信息-q: 只显⽰镜像IDdocker imagesdocker images ubuntu2.rmi删除本地⼀个或多个镜像-f:强制删除--no-prune: 不移除该镜像的过程进⾏,默认移除docker rmi -f runoob/ubuntu:v43.tag标记本地镜像,将其归⼊某⼀个仓库# 把镜像ubuntu:15.10标记为runoob/ubuntu:v3 docker tag ubuntu:15.10 runoob/ubuntu:v34.build⽤于使⽤dockerfile创建镜像(后⾯会讲解到) docker build [options] path | url | -5.history查看指定镜像的创建历史docker history [options] image-H: 以可读的格式打印镜像⼤⼩和⽇期,默认为true--no-trunc: 显⽰完整的提交记录-q: 仅列出提交记录ID6.save将指定镜像保存成tar归档⽂件docker save [options] image [image ...]-o: 输出⽂件docker save -o my_ubuntu_v3.tar runoob/ubuntu:v37.import从归档⽂件中创建镜像docker import [options] file |URL |- [repository:tag] docker import my_ubuntu_v3.tar runoob/ubuntu:v4info/version显⽰docker系统信息,包括镜像和容器数docker info [options]docker info2.version显⽰docker版本信息docker version [options]-f: 指定返回值的模板⽂件docker version其他stats查看每个运⾏的docker容器的状态docker statsCONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 9c5e0e259466 test02 0.02% 12.46MiB / 100MiB 12.46% 1.3kB / 0B 19.2MB / 16.4kB 2d5183228b334 test01 0.02% 12.55MiB / 100MiB 12.55% 1.04kB / 0B 7.59MB / 16.4kB 2。
docker系列-基础镜像环境和Docker常用命令整理
docker系列-基础镜像环境和Docker常⽤命令整理在hub官⽹会经常能看到 alpine 字样, alpine 是要给⾮常轻量级的Linux发⾏版,Docker官⽅已经推荐使⽤alpine 代替之前的 Ubuntu作为基础镜像环境, 好处是制作出的最终镜像⽂件很多, 但docker dub上⽬前仍以 Ubuntu 为主流的基础镜像环境.=======================⽤于 docker 命令学习的镜像和命令=======================下⾯镜像常⽤于 docker 命令学习docker pull nginx:1.15-alpine #只需要20M的空间docker pull busybox #只占⽤2M空间以守护态运⾏容器, 经常⽤于容器的学习.docker run -d --name mybusybox busybox /bin/sh -c "while true; do echo hello world; sleep 1; done"使⽤镜像nginx:1.15-alpine以后台模式启动⼀个容器, 并将容器的80端⼝映射到主机随机端⼝(80是该镜像expose的端⼝)docker run -P -d --name mynginx1 nginx:1.15-alpine使⽤镜像nginx:1.15-alpine以后台模式启动⼀个容器, 指定主机的端⼝为 80docker run -p 80:80 -d --name mynginx2 nginx:1.15-alpine=======================docker 容器端⼝映射=======================1. 指定host端⼝和容器内端⼝使⽤镜像nginx:1.15-alpine以后台模式启动⼀个容器, 指定主机的端⼝为80, 冒号前的host端⼝, 冒号后为容器内部的端⼝.docker run -p 80:80 -d --name mynginx2 nginx:1.15-alpine2. 容器内端⼝随机分配⼀个Host端⼝下⾯ -p 参数的 80 指的是容器内部的端⼝, 没有指定host端⼝, docker在主机上⾃动开放⼀个映射端⼝(当然是未被占⽤的), ⾃动端⼝号⼀般⼤于等于 32768 .docker run -p 80 -d --name mynginx2 nginx:1.15-alpine3. ⾃动为所有的 Dockerfile EXPOSE 端⼝映射Host端⼝Dockerfile EXPOSE 可能会开放多个端⼝, 使⽤ -P 参数将⾃动为这些容器内部端⼝分配对应的Host主机端⼝docker run -P -d --name mynginx1 nginx:1.15-alpine=======================docker 的⼀些常⽤命令=======================docker images 命令, 显⽰可⽤的容器docker rmi <镜像Id> 命令,删除指定镜像docker pull hello-world 命令 , 下载 hello-world imagedocker rmi <镜像Id> 命令,删除指定镜像docker ps 命令, 列出当前正在运⾏的容器, 结果的第⼀列是container_Id, 第2列是容器名称.docker ps -a 命令, 列出当前正在运⾏的和之前运⾏完的容器docker stop container_id/container-name 命令, 停⽌指定的容器, 该容器Id或名称可以从docker ps中获取.docker restart container_id/container-name 命令, 重新启动指定的容器, 该容器Id或名称可以从docker ps中获取.docker start container_id/container-name 命令, 启动指定的容器, 该容器Id或名称可以从docker ps中获取.docker rm container_id/container-name, 删除指定的容器docker rm $(docker ps -a -q) 命令, 删除所有运⾏结束了容器, 正在运⾏的容器不会被删除docker top container_id/container-name, 查看容器内的进程docker logs [-f] [-t] [--tail string] 容器名, 查看容器的⽇志输出, -f是打开跟踪, -t是加上时间戳, --tail 100 表⽰仅显⽰最后的100⾏⽇志docker search nginx, 在hub站点中搜索 nginx 镜像docker image inspect image_id 命令, 显⽰指定镜像的详细信息.docker container inspect container_id/container-name 命令, 显⽰指定容器的详细信息,包括容器的Ipdocker images -f dangling=true 命令, 列出没有被容器化的镜像docker rmi $(docker images -qf dangling=true) 命令, 删除那些没有被容器化的镜像docker system df 命令, 可以⼀次性查看镜像/容器/host volume的磁盘占⽤情况.docker ps -s 命令, 输出容器的空间占⽤=======================docker ⼀些管理命令集=======================除了上⾯常⽤的命令外, docker 还有⼀些管理命令集, 这些命令集还可以包含⼆级命令:config Manage Docker configscontainer Manage containersimage Manage imagesnetwork Manage networksnode Manage Swarm nodesplugin Manage pluginssecret Manage Docker secretsservice Manage servicesstack Manage Docker stacksswarm Manage Swarmsystem Manage Dockertrust Manage trust on Docker imagesvolume Manage volumes⽐较常⽤的是,docker image build, 编译 Dockfiledocker network create, 创建 docker ⽹络docker volume create, 创建数据卷=======================docker run/exec 命令=======================运⾏ hello-world 容器, 如果本地没有下载, 将会⾃动从hub站点下载.docker run hello-world 命令以守护态运⾏容器docker run -d --name mybusybox busybox /bin/sh -c "while true; do echo hello world; sleep 1; done"登陆⼀个容器, 运⾏中的容器其实是⼀个功能完备的Linux操作系统, 所以我们可以在登陆该容器执⾏常规的Linux命令.docker exec -it container_id/container-name /bin/bash使⽤ redis-cli 登陆 myredis 容器docker exec -it myredis redis-cliexec 后的 -it 参数的意思是, 以交互的⽅式并分配⼀个伪tty, 经常⼀起联⽤.=======================docker redis 使⽤=======================# 下载最新版的 redis imagedocker pull redis:latest# 简单⽅式启动 redis 服务pull run redisdocker run --name itbilu-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-pass -d mysql:5.7我们就创建了⼀个名为 itbilu-mysql 的MySQL数据库服务器容器实例, 在创建数据库时,通过环境变量MYSQL_ROOT_PASSWORD设置数据库的root密码,还通过5.7标签指定了所使⽤的镜像版本。
Docker容器的启动和停止命令详解
Docker容器的启动和停止命令详解随着云计算和容器技术的快速发展,Docker作为一种轻量级的虚拟化解决方案,在软件开发和部署中扮演着重要角色。
熟悉Docker容器的启动和停止命令是每个开发者和运维人员必备的技能。
本文将详细介绍常用的Docker容器启动和停止命令。
一、Docker容器的启动1. docker run命令docker run命令是启动Docker容器最常用的命令之一。
其基本语法为:```docker run [OPTIONS] IMAGE [COMMAND] [ARG...]```其中,OPTIONS为一系列的选项,IMAGE是要运行的镜像,COMMAND为在容器中要执行的命令。
- -d选项表示以后台(detached)方式运行容器。
- -p选项指定容器的端口映射,将容器内部端口映射到宿主机的端口上。
- --name选项指定容器的名称,方便管理和识别。
示例:```bashdocker run -d -p 8080:80 --name mycontainer nginx```上述命令将启动一个基于nginx镜像的容器,并将容器的80端口映射到宿主机的8080端口上。
容器将在后台运行,并以mycontainer作为名称。
2. docker start命令当容器已经创建但是处于停止状态时,可以使用docker start命令启动容器。
其语法为:```bashdocker start [OPTIONS] CONTAINER [CONTAINER...]```其中,CONTAINER为要启动的容器的ID或名称。
示例:```bashdocker start mycontainer```上述命令将启动名为mycontainer的容器。
二、Docker容器的停止1. docker stop命令docker stop命令用于停止正在运行的容器。
其基本语法为:```bashdocker stop [OPTIONS] CONTAINER [CONTAINER...]```其中,CONTAINER为要停止的容器的ID或名称。
docker build 用法
docker build 用法Docker Build 用法详解Docker 是一个用于开发、部署和运行应用程序的开源平台。
它利用容器化技术,使得应用程序与其运行环境相互隔离,从而能够实现高度可移植性和可扩展性。
在Docker 中,使用 `docker build` 命令可以通过 Dockerfile 构建自定义的镜像。
Dockerfile 是一个文本文件,包含了一系列的指令和配置信息,用于自动化构建 Docker 镜像。
`docker build` 命令通常在 Dockerfile 所在的目录下执行,并根据Dockerfile 的指令逐条构建镜像。
下面是 `docker build` 命令的基本用法:1. 构建镜像:```docker build -t <镜像名称>:<标签> <Dockerfile所在目录>```这里 `-t` 参数用于指定镜像的名称和标签。
例如,`myapp:1.0` 是一个合法的镜像名称和标签的组合。
2. 使用镜像构建上下文:```docker build -t <镜像名称>:<标签> -f <Dockerfile路径> <上下文目录>````-f` 参数用于指定自定义 Dockerfile 的路径,而不使用默认的名为 Dockerfile 的文件。
`<上下文目录>` 是相对路径,用于指定构建上下文,Docker 会将该目录及其子目录中的所有文件都发送给 Docker 引擎作为构建上下文。
3. 构建时传递参数:```docker build --build-arg <参数键>=<参数值> -t <镜像名称>:<标签> <Dockerfile 所在目录>````--build-arg` 参数用于传递构建时的参数给 Dockerfile 中的指令。
docker命令的基本用法
docker命令的基本用法Docker是一种容器化平台,允许开发人员将应用程序及其依赖打包成一个可移植的容器,以便在不同的环境中进行部署和运行。
以下是一些常见的Docker命令及其基本用法:1. `docker version`:显示Docker版本信息。
2. `docker info`:显示Docker系统相关信息。
3. `docker pull <image>`:从Docker镜像仓库中拉取一个镜像到本地。
4. `docker images`:列出本地已经拉取的所有镜像。
5. `docker run <image>`:在一个新的容器中运行一个镜像。
6. `docker ps`:列出当前正在运行的容器。
7. `docker stop <container>`:停止一个正在运行的容器。
8. `docker rm <container>`:删除一个已经停止的容器。
9. `docker rmi <image>`:删除一个本地的镜像。
10. `docker build -t <tag> <Dockerfile路径>`:根据Dockerfile 构建一个新的镜像。
11. `docker-compose up`:在定义的Docker Compose文件中启动服务。
12. `docker-compose down`:停止在Docker Compose中定义的服务。
13. `docker logs <container>`:查看容器的日志。
14. `docker exec -it <container> <command>`:在正在运行的容器中执行一个命令。
这只是一些常见的Docker命令,还有很多其他命令可以用于Docker容器的管理和操作。
你可以通过运行`docker --help`命令或查阅Docker官方文档来获取更多详细的命令用法和参数说明。
Docker基础之Dockerfile命令详解
Docker基础之Dockerfile命令详解Dockerfile 是⼀个⽂本格式的配置⽂件,⽤户可以使⽤ Dockerfile 快速创建⾃定义的镜像。
我们会先介绍 Dockerfile 的基本结构及其⽀持的众多指令,并具体讲解通过执⾏指令来编写定制镜像的 Dockerfile。
基本结构Dockerfile 由⼀⾏⾏命令语句组成,并且⽀持已 # 开头的注释⾏。
⼀般⽽⾔,Dockerfile 的内容分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执⾏指令。
例如:# This dockerfile uses the Ubuntu image# VERSION 2# Author: docker_user# Command format: Instruction [arguments / command] …# 第⼀⾏必须指定基于的容器镜像FROM ubuntu# 维护者信息MAINTAINER docker_user docker_user@# 镜像的操作指令RUN echo “deb /ubuntu/ raring main universe” >> /etc/apt/sources.listRUN apt-get update && apt-get install -y nginxRUN echo “\ndaemon off;” >> /etc/nginx/nginx.conf# 容器启动时执⾏指令CMD /usr/sbin/nginx其中,⼀开始必须指明所基于的镜像名称,接下来⼀般会说明维护者的信息。
后⾯则是镜像操作指令,例如 RUN 指令,RUN 指令将对镜像执⾏跟随的命令。
每运⾏⼀条 RUN 指令,镜像添加新的⼀层,并提交。
最后是 CMD 指令,来指定运⾏容器时的操作命令。
下⾯是两个 dockerhub 上的例⼦,同学们可以对 Dockerfile 结构有个基本的感知。
docker命令大全
# docker命令systemctl enable docker ***设置开机启动docker***systemctl disable docker ***设置开机不启动docker:***systemctl start docker ***启动docker***systemctl stop docker ***停止docker服务***systemctl restart docker ***重启docker***docker info ***显示docker的系统信息,包括镜像和容器的数量***docker version ***显示docker的版本信息。
***docker --help ***帮助命令***docker images ***查看所有本地主机上的镜像可以使用docker image ls代替*** docker search ***搜索镜像***docker pull ***下载镜像 docker image pull***docker rmi ***删除镜像 docker image rm***# 容器命令docker run ***镜像id #新建容器并启动***docker ps ***列出所有运行的容器 docker container list***docker rm ***容器id #删除指定容器***# 删除所有容器docker rm -f $(docker ps -aq) ***删除所有的容器***docker ps -a -q |xargs docker rm ***删除所有的容器***# 启动和停止容器docker start [容器id] ***启动容器***docker restart [容器id] ***重启容器***docker stop [容器id] ***停止当前正在运行的容器***docker kill [容器id] ***强制停止当前容器***# 退出容器exit ***容器直接退出***ctrl +P +Q >>>***容器不停止退出 ---注意:这个很有用的操作***<<<# 其他常用命令docker run -d [镜像名] ***后台启动命令***docker logs ***查看日志***docker top ***容器id #查看容器中进程信息ps***docker inspect ***容器id #查看镜像的元数据***docker exec ***进入当前容器后开启一个新的终端,可以在里面操作。
docker-compose命令详解
docker-compose命令详解
1.docker-compose的使⽤⾮常类似于docker命令的使⽤,但是需要注意的是⼤部分的compose命令都需要到docker-compose.yml⽂件所在的⽬录下才能执⾏。
2.【Linux命令】docker-compose up【命令解释】命令聚合每个容器的输出,命令退出时,所有容器都将停⽌。
3.【Linux命令】docker-compose up -d【命令解释】在后台启动容器并使它们保持运⾏。
4.【Linux命令】docker-compose logs -f【命令解释】查看该容器的启动的⽇志打印(⽇志从头打印)。
5.【Linux命令】docker logs -f container_id【命令解释】查看某⼀容器的启动的⽇志打印(⽇志从头打印)。
6.【Linux命令】docker logs -f --tail 数量词 container_id【命令解释】查看某⼀容器的启动的⽇志打印(查看最后n条⽇志打印)。
例:docker logs -f --tail 50 44b
7.【Linux命令】docker-compose stop【命令解释】停⽌compose服务。
8.【Linux命令】docker-compose restart【命令解释】重启compose服务。
9.【Linux命令】docker-compose kill【命令解释】 kill compose服务。
10.【Linux命令】docker-compose ps【命令解释】查看compose服务状态。
11.【Linux命令】docker-compose rm【命令解释】删除compose服务。
docker:(1)docker基本命令使用及发布镜像
docker:(1)docker基本命令使⽤及发布镜像docker镜像可以完全看作⼀台全新的电脑使⽤,⽆论什么镜像都是对某⼀东西进⾏了配置,然后打包后可以快速移植到需要的地⽅直接使⽤省去复杂的配置⼯作⽐如java web项⽬部署,如果是新部署,需要装系统,配置jdk,maven,sql,redis等各类环境,费时费⼒还容易出错,⽽docker就可以省去配置环境的⿇烦,直接让你把war包丢进去,实现分分钟部署⼀个项⽬从头开始简单的说下docker的使⽤本次讲解环境为ubuntu 16.04安装好之后,便是启动dockersudo service docker start与之对应的停⽌dokcer服务命令就是stop了sudo service docker stop然后通过--version可以查看运⾏的docker版本sudo docker --version启动后,是没有任何镜像的,不过可以通过pull命令获取相关镜像xiaochangwei@ubuntu:~/test$xiaochangwei@ubuntu:~/test$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEtomcat latest 17eb1d58bf8c About an hour ago 505MBubuntu 16.04 00fd29ccc6f1 3 weeks ago 111MBxiaochangwei@ubuntu:~/test$xiaochangwei@ubuntu:~/test$xiaochangwei@ubuntu:~/test$ sudo docker pull nginxUsing default tag: latestlatest: Pulling from library/nginxe7bb522d92ff: Pull complete6edc05228666: Pull completecd866a17e81f: Pull completeDigest: sha256:cf8d5726fc897486a4f628d3b93483e3f391a76ea4897de0500ef1f9abcd69a1Status: Downloaded newer image for nginx:latestxiaochangwei@ubuntu:~/test$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEtomcat latest 17eb1d58bf8c About an hour ago 505MBnginx latest 3f8a4339aadd 9 days ago 108MBubuntu 16.04 00fd29ccc6f1 3 weeks ago 111MBxiaochangwei@ubuntu:~/test$xiaochangwei@ubuntu:~/test$sudo docker pull nginx 默认获取最新版本,即TAG为latest的,如果要获取其他版本,则需要使⽤ sudo docker pull nginx:xxxx获取镜像后,通过docker run使其运⾏起来sudo docker ps -a 列出所有容器,不加 -a 仅列出正在运⾏的,像退出了的或者仅仅只是创建了的就不列出来sudo docker run -d -p 8800:80 --name nginx_xiao nginx #运⾏指定的镜像dudo docker run -d --privileged=true -p 83:80 --name nginx83 nginx #提升权限#宿主主机端⼝:容器内部端⼝ -d 后台运⾏ -p 8800:80 是指定对外暴露的端⼝容器内部⽤80 对应外部宿主主机的的8800 代理⼀样 --name指定容器的名字最后的nginx 代码要运⾏的镜像名字有tag的加上tag 如 nginx:xxx 默认为latest然后访问宿主主机地址+8800端⼝表明nginx已经成功运⾏pull到的镜像肯定有很多需要修改的地⽅,⽐如配置⽂件等或者要⾃⼰增加些什么玩意⼉进去sudo docker exec -it 54d26bbce3d6 /bin/bash通过exec命令进⼊到容器内部进⾏操作,其中红⾊部分可以是容器id或容器名字进⼊之后就和操作新的系统⼀样,操作完成之后输⼊exit退出某些时候需要获取镜像信息详情,⽐如安装了mysql后需要获取镜像内部的IP,端⼝等sudo docker inspect nginx_xiao这样会出来很多信息,可以通过grep检索需要的项⽬xiaochangwei@ubuntu:~/test$ sudo docker inspect nginx_xiao |grep IPAddress"SecondaryIPAddresses": null,"IPAddress": "172.17.0.2","IPAddress": "172.17.0.2",xiaochangwei@ubuntu:~/test$那么问题⼜来了,进⼊容器内部并修改了东西后,怎么⽣成新的镜像供下次直接使⽤xiaochangwei@ubuntu:~/test$ sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0sha256:9f2c1a649a75fc72af4c2d6972290d9bc5f97c62ac52d6705b902fcdefeceea1xiaochangwei@ubuntu:~/test$xiaochangwei@ubuntu:~/test$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExiaochangwei/nginx v1.0 9f2c1a649a75 11 seconds ago 108MBtomcat latest 17eb1d58bf8c 4 hours ago 505MBnginx latest 3f8a4339aadd 9 days ago 108MBubuntu 16.04 00fd29ccc6f1 3 weeks ago 111MBxiaochangwei@ubuntu:~/test$sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0 nginx_xiao 表⽰我们刚修改的容器名字或者idxiaochangwei/nginx:v1.0 为保存的镜像名字:后⾯为tag刚刚commit的镜像仅仅是保存在本地的,如果要提交到⽹络上供其他⼈pull 使⽤呢?如 https:///1.在https:///上注册⼀个账号2.提交本地镜像到https:///上去这样别⼈就可以通过docker pull xiaochangwei/nginx:v1.0 来获取并使⽤这个镜像了需要注意的是:sudo docker commit nginx_xiao xiaochangwei/nginx:v1.0 镜像名⾥⾯包含了我注册的账户名,这⾥需要⼀致,否则⽆法pus 到这⾥镜像怎么获取,查看,启动,编辑,保存,提交容器查看都知道了,但是怎么停⽌、启动、删除容器呢1.通过 sudo docker ps -a查看存在的容器信息2.通过 sudo docker start/stop/restart xxx 来启动、停⽌、重启指定的容器2.通过 sudo docker rm xxx 指定容器名或者容器id来删除,删除前请先停⽌容器,保证在⾮运⾏状态xiaochangwei@ubuntu:~/test$ sudo docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES54d26bbce3d6 nginx "nginx -g 'daemon ..."43 minutes ago Up 43 minutes 0.0.0.0:8800->80/tcp nginx_xiaoxiaochangwei@ubuntu:~/test$ sudo docker restart nginx_xiaonginx_xiaoxiaochangwei@ubuntu:~/test$ sudo docker stop nginx_xiaonginx_xiaoxiaochangwei@ubuntu:~/test$ sudo docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES54d26bbce3d6 nginx "nginx -g 'daemon ..."44 minutes ago Exited (0) 2 seconds ago nginx_xiaoxiaochangwei@ubuntu:~/test$ sudo docker rm nginx_xiaonginx_xiaoxiaochangwei@ubuntu:~/test$ sudo docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESxiaochangwei@ubuntu:~/test$同样镜像的删除按如下操作 1.通过sudo docker images 列出所有镜像2.通过sudo docker rmi xxx 来删除指定的镜像,镜像存在依赖关系,先删除最下层,最后删除顶层,建议根据镜像名字来删除xiaochangwei@ubuntu:~/test$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExiaochangwei/nginx v1.0 9f2c1a649a75 23 minutes ago 108MBtomcat latest 17eb1d58bf8c 4 hours ago 505MBnginx latest 3f8a4339aadd 9 days ago 108MBubuntu 16.04 00fd29ccc6f1 3 weeks ago 111MBxiaochangwei@ubuntu:~/test$ sudo docker rmi tomcatUntagged: tomcat:latestDeleted: sha256:17eb1d58bf8cf6809a26c9c47396a259d419d795070670d5a1bf0cbe63f9167cDeleted: sha256:ba92fe7a45fb76c9842f81a978a3671d3229077811e18c892ec18ddf7a8f372eDeleted: sha256:909e728190891a5bc59fd5f20cc741a9f8cf05531008de8bf6fcb86cbf9b92b3Deleted: sha256:757a35964f233352b539f21545c83f7443f666457075e177d5b88ae2afbc70ecDeleted: sha256:e9af3a1672101d2803af7a9af40b3442e6b2ac5236d27fb486ea34c2be773dccDeleted: sha256:32e70354b98514f5c68cf18f01880e355826d7cd633eb7b303af25915e574556Deleted: sha256:01cd90dce70e314277a0d5550578d8db86efd7aa512fec4587f971a1e2474b1fDeleted: sha256:49909967c97ee31e2f3f69bbb150807e18b290eb3ab7f39ba0db3cc426278420Deleted: sha256:b0427413f858084dffd95e8b7c42968c12f8229925a0d4c15985722ccc3f90e9Deleted: sha256:1af387e1b89f088f694f89d1bd03c91a4f28e7704c4cc151994d0a3bfae42abeDeleted: sha256:e3c3b2640184c780efdcc2a02fa3e4fdb7f96dceccc1452527d1e9a1a879399bDeleted: sha256:6fb895d7f122630fbb471eb29f6d5ee2db66425e885f2c22462525daa7d263c2Deleted: sha256:e3a0c7535fa27c5bb3d91fa905d363bc6a572ea78aad4e5e17b47604c5d2289fDeleted: sha256:532ea8d384305c2f5fbcd946e0c7ce71d547550c1fa2f6726d37d26688c9e6f8Deleted: sha256:dfde2fab09732f8a2ae1a51362222e205fda934baccc8017b23867a2e4a1eb90xiaochangwei@ubuntu:~/test$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExiaochangwei/nginx v1.0 9f2c1a649a75 24 minutes ago 108MBnginx latest 3f8a4339aadd 9 days ago 108MBubuntu 16.04 00fd29ccc6f1 3 weeks ago 111MBxiaochangwei@ubuntu:~/test$以上就是docker的基本使⽤命令了,下⼀篇将讲解通过dockerfile来构建镜像。
docker update 用法
文章标题:深度解析Docker Update命令的用法及实践指南在当今互联网技术飞速发展的时代,容器化技术已经成为云计算领域的热门话题。
Docker作为当前最流行的容器化引擎之一,其强大的功能和灵活的使用方式备受开发者和运维人员的青睐。
在Docker中,update命令是一个非常重要的功能,它可以帮助我们在运行容器的同时灵活地修改配置,从而实现应用程序的无缝升级和更新。
本文将围绕着Docker Update命令的用法展开深入探讨,希望能够为读者提供一份全面、深入、有价值的实践指南。
一、Docker Update命令的介绍Docker Update命令是用来更新正在运行的容器的配置的。
通过该命令,我们可以灵活地修改容器的各种配置参数,包括CPU、内存、网络、挂载点等等。
这为我们实现容器的动态调整提供了一个非常便利的方式,使得我们在不停止容器的情况下就可以对其进行更新和调整。
这在生产环境中尤为重要,因为它可以最大限度地减少系统的停机时间,提高系统的稳定性和可用性。
二、Docker Update命令的语法和参数在讲解Docker Update命令的具体用法之前,我们需要先了解其语法和参数。
在Docker中,使用update命令的语法格式如下:```docker update [选项] 容器名称或ID```其中,update命令的常用选项包括但不限于:- --cpu-shares=: 设置容器CPU的权重- --memory=: 设置容器的内存限制- --restart=: 设置容器的重启策略- --blkio-weight=: 设置容器的块IO权重- --cpuset-cpus=: 设置容器可以使用的CPU核心- --kernel-memory=: 设置容器的内核内存限制- --memory-swap=: 设置容器的内存加交换空间限制- --network=: 设置容器的网络模式- --oom-score-adj=: 设置容器的OOM分数调整三、Docker Update命令的实践指南1. 更新容器的CPU和内存限制对于现代的应用程序来说,动态调整容器的CPU和内存限制是非常有必要的。
docker run --entrypoint用法
docker run --entrypoint用法Docker是一个开源的应用容器引擎,它可以帮助开发人员将应用程序与其依赖项打包到一个可移植的容器中,然后在不同的环境中运行。
在使用Docker时,一项常见的任务是在容器启动时执行特定的命令或脚本,这就是通过使用Docker的entrypoint机制实现的。
这篇文章将向您介绍Docker的entrypoint用法,并逐步解释如何使用它来管理容器的启动命令。
第一步:理解entrypoint是什么在介绍如何使用entrypoint之前,我们需要先了解什么是entrypoint。
简而言之,entrypoint是一个容器的入口点,它定义了容器启动时要执行的命令或脚本。
与之相关的是另一个概念,即CMD,它类似于entrypoint,但是如果在启动容器时提供了命令行参数,CMD的值将被覆盖。
传统上,人们通常使用shell脚本作为entrypoint来启动容器。
然而,Docker提供了更灵活的选择,你可以使用任何可执行文件作为entrypoint,包括Shell脚本、Python脚本、二进制文件等。
这使得entrypoint非常强大,可以实现复杂的容器启动脚本。
第二步:创建一个简单的entrypoint脚本让我们从一个简单的例子开始,演示如何使用entrypoint来执行一个命令。
假设我们有一个Docker镜像,其中包含一个可执行文件,我们希望在容器启动时运行该可执行文件。
首先,我们需要创建一个entrypoint脚本。
在本例中,我们将创建一个名为`start.sh`的脚本,内容如下:!/bin/bashecho "Hello, Docker!"这个脚本非常简单,只是输出一句问候语。
现在,我们需要将这个脚本拷贝到Docker镜像中。
为此,我们可以在Dockerfile中使用`COPY`指令:FROM ubuntu:latestCOPY start.sh /usr/local/bin/start.shRUN chmod +x /usr/local/bin/start.sh在这个Dockerfile中,我们首先选择了一个基础镜像,然后将`start.sh`脚本拷贝到镜像的`/usr/local/bin`目录下,并将其赋予可执行权限。
docker run --entrypoint用法 -回复
docker run --entrypoint用法-回复Docker是目前最流行的容器化平台之一,它可以帮助开发者将应用程序与其依赖的环境打包成一个独立的容器,并提供了一套工具和接口来管理和部署这些容器。
其中,docker run是Docker最基本的命令之一,用于在容器中运行一个新的进程。
本文将重点介绍docker run命令中的entrypoint用法,包括什么是entrypoint、为什么要使用entrypoint,以及如何正确使用entrypoint来运行容器。
什么是entrypoint?在容器中运行一个进程时,通常需要指定该进程的可执行文件路径以及任何必要的参数。
这可以在docker run命令中使用命令行参数来完成,例如`docker run <image> <command>`。
然而,Docker还提供了一种更为灵活和强大的方式来定义容器中的主进程,那就是使用entrypoint。
Entrypoint是在Dockerfile中定义的可执行文件或脚本。
它指定了容器启动时要运行的默认命令,相当于容器的主程序。
与命令行参数不同,entrypoint可以在Dockerfile中进行定义和配置,使得容器的使用更为方便和直观。
为什么要使用entrypoint?使用entrypoint有以下几个重要的优势:1. 容器的可移植性:通过在Dockerfile中定义entrypoint,可以确保容器在不同的环境中始终以相同的方式启动。
这对于部署和在不同的主机之间迁移容器非常有帮助。
2. 减少编写参数的复杂性:如果不使用entrypoint,每次运行容器时都需要编写完整的命令行参数。
而使用entrypoint后,只需要运行`docker run <image>`即可启动容器的主进程,并且可以通过环境变量等方式来配置entrypoint。
3. 提高容器的安全性:通过配置entrypoint,可以将容器的主进程与root用户分离,从而减少潜在的安全漏洞。
Docker命令详解(build篇)
Docker命令详解(build篇)命令格式:docker build [OPTIONS] <PATH | URL | ->Usage: Build an image from a Dockerfile.中⽂意思即:使⽤build命令,在Dockerfile的基础上构建⼀个镜像。
常⽤选项说明--build-arg,设置构建时的变量--no-cache,默认false。
设置该选项,将不使⽤Build Cache构建镜像--pull,默认false。
设置该选项,总是尝试pull镜像的最新版本--compress,默认false。
设置该选项,将使⽤gzip压缩构建的上下⽂--disable-content-trust,默认true。
设置该选项,将对镜像进⾏验证--file, -f,Dockerfile的完整路径,默认值为‘PATH/Dockerfile’--isolation,默认--isolation="default",即Linux命名空间;其他还有process或hyperv--label,为⽣成的镜像设置metadata--squash,默认false。
设置该选项,将新构建出的多个层压缩为⼀个新层,但是将⽆法在多个镜像之间共享新层;设置该选项,实际上是创建了新image,同时保留原有image。
--tag, -t,镜像的名字及tag,通常name:tag或者name格式;可以在⼀次构建中为⼀个镜像设置多个tag--network,默认default。
设置该选项,Set the networking mode for the RUN instructions during build--quiet, -q,默认false。
设置该选项,Suppress the build output and print image ID on success--force-rm,默认false。
Docker(11)-dockerps命令详解
Docker (11)-dockerps 命令详解如果你还想从头学起 Docker,可以看看这个系列的⽂章哦!作⽤列出容器语法格式options 说明实际栗⼦列表字段介绍docker ps [OPTIONS]option作⽤-a, --all显⽰全部容器(默认只显⽰运⾏中的容器)-f, --filter filter根据提供的 filter 过滤输出-n, --last int列出最近创建的 n 个容器(默认-1,代表全部)-l, --latest显⽰最近创建的容器(包括所有状态的容器)-s, --size显⽰总的⽂件⼤⼩--no-trunc显⽰完整的镜像 ID -q, --quiet静默模式,只显⽰容器 ID# 不带optionsdocker ps# 显⽰全部容器,和总⽂件⼤⼩docker ps -a -s# 显⽰最近创建的容器docker ps -ldocker ps -a -l# 显⽰最近创建的 2 个容器docker ps -n 2# 显⽰完整的镜像IDdocker ps --no-trunc# 只显⽰镜像IDdocker ps -qCONTAINER ID:容器 IDIMAGE:使⽤的镜像COMMAND:启动容器时后,容器运⾏的命令CREATED:容器的创建时间STATUS:容器状态PORTS:实际运⾏端⼝,若有指定运⾏端⼝则会显⽰指定的端⼝和默认运⾏端⼝,以及连接类型( tcp / udp )NAMES:容器名字SIZE:容器全部⽂件的总⼤⼩,也会显⽰容器⼤⼩容器状态介绍created:已创建restarting:重启中running:运⾏中removing:迁移中paused:暂停exited:停⽌dead:死亡。
dockerrun命令详解
dockerrun命令详解Docker运⾏引⽤Docker 在独⽴的容器中运⾏进程。
容器是⼀个在主机上运⾏的进程。
主机可能是本地或远程的。
当运营商执⾏时docker run,运⾏的容器进程是独⽴的,因为它拥有⾃⼰的⽂件系统,⾃⼰的⽹络以及独⽴于主机的独⽴进程树。
本页详细介绍如何使⽤该docker run命令在运⾏时定义容器的资源。
⼀般形式基本docker run命令采⽤这种形式:$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]该docker run命令必须指定⼀个IMAGE 以从中派⽣容器。
图像开发⼈员可以定义与以下相关的图像默认值:分离或前景运⾏货柜识别⽹络设置CPU和内存的运⾏时间限制随着docker run [OPTIONS]操作者可以添加或覆盖由开发者设置的图像的默认值。
此外,运算符可以覆盖 Docker 运⾏时⾃⾝设置的⼏乎所有默认值。
操作员重写图像和 Docker 运⾏时默认值的能⼒是为什么run⽐其他docker命令具有更多选项。
要了解如何解释类型[OPTIONS],请参阅选项类型。
注意:根据您的 Docker 系统配置,您可能需要使⽤前⾯的docker run命令sudo。
为了避免必须使⽤sudo该docker命令,系统管理员可以创建⼀个名为的 Unix 组docker并向其添加⽤户。
有关此配置的更多信息,请参阅适⽤于您的操作系统的 Docker 安装⽂档。
运营商独享选项只有操作员(执⾏⼈员docker run)可以设置以下选项。
分离与前景分离(-d)前景容器标识名称(-name)PID等值IPC设置(-ipc)⽹络设置重新启动策略(-restart)清理(-rm)运⾏时对资源的限制运⾏时权限和Linux功能分离与前景启动 Docker 容器时,您必须先决定是否要在后台以“分离”模式或默认的前台模式运⾏容器:-d=false: Detached mode: Run container in the background, print new container id分离(-d)要以分离模式启动容器,可以使⽤-d=true或仅使⽤-d选项。
Docker(24)-dockerlogin命令详解
Docker( 24) -dockerlogin命令详解 如果你还想从头学起 Docker,可以看看这个系列的文章哦!
作用
登录 Docker 镜像仓库,默认是 Docker hub
前言
需要先在 Docker Hub 中注册一个账号才能在 Linux 登录哦
语法格式
docker login [OPTIONS] [SERVER]
options 说明
options -u -p --password-stdin
作用 账号 密码 通过 STDIN 提供密码
实际栗子
通过命令行方式输入账号密码
docker login
需要逐步输入账号、密n -u poloyy -p ***
这种方式不安全,密码会出现在 shell 的历史记录或日志文件中
通过 STDIN 输入密码
先将密码存储在 pwd.txt 文件中
cat pwd.txt | docker login -u poloyy --password-stdin
可以解决上一个栗子的不安全问题
Docker容器服务命令
Docker容器服务命令$ nohup java -jar test.jar >temp.txt &//这种⽅法会把⽇志⽂件输⼊到你指定的⽂件中,没有则会⾃动创建。
进程会在后台运⾏。
springboot项⽬部署$ nohup java -jar test.jar >temp.txt &Linux查询进程和结束进程1. ps -ef |grep redisps:将某个进程显⽰出来-A 显⽰所有程序。
-e 此参数的效果和指定"A"参数相同。
-f 显⽰UID,PPIP,C与STIME栏位。
grep命令是查找中间的|是管道命令是指ps命令与grep同时执⾏,这条命令的意思是显⽰有关redis有关的进程2. kill[参数][进程号]kill -9 4394kill就是给某个进程id发送了⼀个信号。
默认发送的信号是SIGTERM,⽽kill -9发送的信号是SIGKILL,即exit。
exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。
当然你也可以使⽤kill发送其他信号给进程防护墙1:查看防⽕状态systemctl status firewalldservice iptables status2:暂时关闭防⽕墙systemctl stop firewalldservice iptables stop3:永久关闭防⽕墙systemctl disable firewalldchkconfig iptables off4:重启防⽕墙systemctl enable firewalldservice iptables restart5:永久关闭后重启//暂时还没有试过chkconfig iptables on 删除/停⽌容器:$ docker ps// 查看所有正在运⾏容器$ docker stop containerId // 停⽌containerId 是容器的ID$ docker ps -a // 查看所有容器 $ docker ps -a -q // 查看所有容器ID$ docker stop $(docker ps -a -q) // stop停⽌所有容器$ docker rm $(docker ps -a -q) // remove删除所有容器docker服务重启systemctl ⽅式//守护进程重启sudo systemctl daemon-reload//重启docker服务sudo systemctl restart docker//关闭dockersudo systemctl stop dockerservice ⽅式//重启docker服务sudo service docker restart//关闭dockersudo service docker stopdocker 创建springboot项⽬镜像并运⾏docker run -d -p 8080:8080 sprintbootdemo制作该镜像的dockerfileFROM /library/java:latestVOLUME /tmpADD target/hros-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-jar","/app.jar"]FROM 表⽰以某个基础镜像进⾏制作,当前是以jdk镜像进⾏制作。
6Dockerfile指令详解ENTRYPOINT指令
6Dockerfile指令详解ENTRYPOINT指令ENTRYPOINT 的格式和 RUN 指令格式⼀样,分为 exec 格式和 shell 格式。
ENTRYPOINT 的⽬的和 CMD ⼀样,都是在指定容器启动程序及参数。
ENTRYPOINT 在运⾏时也可以替代,不过⽐ CMD 要略显繁琐,需要通过docker run 的参数 --entrypoint 来指定。
当指定了 ENTRYPOINT 后, CMD 的含义就发⽣了改变,不再是直接的运⾏其命令,⽽是将 CMD 的内容作为参数传给 ENTRYPOINT 指令,换句话说实际执⾏时,将变为:<ENTRYPOINT> "<CMD>"那么有了 CMD 后,为什么还要有 ENTRYPOINT 呢?这种<ENTRYPOINT> "<CMD>"有什么好处么?让我们来看⼏个场景。
场景⼀:让镜像变成像命令⼀样使⽤假设我们需要⼀个得知⾃⼰当前公⽹ IP 的镜像,那么可以先⽤ CMD 来实现:FROM ubuntu:16.04RUN apt-get update \&& apt-get install -y curl \&& rm -rf /var/lib/apt/lists/*CMD [ "curl", "-s", "" ]假如我们使⽤ docker build -t myip . 来构建镜像的话,如果我们需要查询当前公⽹ IP,只需要执⾏:$ docker run myip当前 IP:61.148.226.66 来⾃:北京市联通嗯,这么看起来好像可以直接把镜像当做命令使⽤了,不过命令总有参数,如果我们希望加参数呢?⽐如从上⾯的 CMD 中可以看到实质的命令是 curl ,那么如果我们希望显⽰ HTTP 头信息,就需要加上 -i 参数。
docker版es、milvus、minio启动命令详解
docker版es、milvus、minio启动命令详解1、es启动命令:docker run -itd -e TAKE_FILE_OWNERSHIP=1111 -v /data/elasticsearch/data:/usr/share/elasticsearch/data -p9200:9200 --name es elasticsearch:6.4.2需要添加环境变量 TAKE_FILE_OWNERSHIP,值随意。
含义请参考我的另⼀篇⽂章:挂载⽬录⽤来存储es的数据。
指定映射端⼝。
⽤的es镜像为 6.4.22、milvus启动命令:docker run -itd --name milvus -h milvus -p 19530:19530 -p 19121:19121 -p 9091:9091 -v/data/milvus/db:/var/lib/milvus/db -v /data/milvus/conf:/var/lib/milvus/conf -v /data/milvus/logs:/var/lib/milvus/logs -v /data/milvus/wal:/var/lib/milvus/wal milvus:cpu-0.8.0指定映射端⼝,有rpc端⼝,tcp端⼝,官⽅提供为这三个端⼝,都⼀起暴露了吧。
挂载⽬录,需要指定四个⽬录,db存储数据,conf存放配置⽂件,logs存放⽇志,wal不了解。
使⽤的milvus镜像为cpu-0.8。
3、minio启动命令:docker run -itd -p 9000:9000 -v /data/minio:/data -e MINIO_ACCESS_KEY=123456 -eMINIO_SECRET_KEY=123456 --name minio -h minio minio:latest server /data指定映射端⼝。
挂载⽬录⽤来存放数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
docker [OPTIONS] commandUsage: docker [OPTIONS] COMMAND [arg...]docker daemon [ --help | ... ]docker [ -h | --help | -v | --version ]A self-sufficient runtime for containers.Options:--config=~/.docker Location of client config files-D, --debug=false Enable debug mode-H, --host=[] Daemon socket(s) to connect to -h, --help=false Print usage-l, --log-level=info Set the logging level--tls=false Use TLS; implied by --tlsverify --tlscacert=~/.docker/ca.pem Trust certs signed only by this CA --tlscert=~/.docker/cert.pem Path to TLS certificate file--tlskey=~/.docker/key.pem Path to TLS key file--tlsverify=false Use TLS and verify the remote-v, --version=false Print version information and quit attachAttach to a running container将终端依附到容器上为后端运行的交互式的容器启用一个终端与之交互。
1.后台有一个可以交互的容器.2.启动该容器.3.通过attach启动终端与之交互build通过Dockerfile创建镜像。
具体见以后的使用中。
commit通过容器创建本地镜像.可自定义tag,如docker commit dc806ee0bf86 web:v1不指定tag的情况下默认tag为latestroot@ubuntu:~# docker commit dc806ee0bf86 test1e488386876e14ef3e930a98ec0bb49de1890963e2e979069f9f4d87f89f4959cp容器和宿主机之间相互copy文件1.将容器:/data/a.txt复制到本地当前目录# docker cp 87cb69be18bb:/data/a.txt ./2.将本地文件复制到容器:/data/backup目录下#docker cp helpdocker.tgz 87cb69be18bb:/data/backup/3.将本地目录复制到容器:/data/backup目录下#docker cp data 87cb69be18bb:/data/backupcreate创建但不启动一个容器.具体参数同docker run.diff查看容器内发生变化的文件。
# docker diff 87cb69be18bbevents实时输出docker服务器端的事件,包括容器的创建、启动、关闭等。
# docker eventsexec通过宿主机在正在运行的容器上执行命令。
通过宿主机在容器上创建文件# docker exec 87cb69be18bb touch /root/abc.txt 可通过exec命令申请一个终端,执行shell# docker exec -it 87cb69be18bb /bin/bashexport将容器的文件系统打包成tar文件两种方式:# docker export 87cb69be18bb > web.tar# docker export -o web.tar 87cb69be18bb history显示一个镜像的历史images显示所有的镜像.import根据export出的tar文件创建一个镜像. # docker import web.tar webinfo# docker infoinspect用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。
# docker inspect 87cb69be18bbkill强制终止容器关于stop和kill的区别,docker stop命令给容器中的进程发送SIGTERM信号,默认行为是会导致容器退出,当然,容器内程序可以捕获该信号并自行处理,例如可以选择忽略。
而dockerkill则是给容器的进程发送SIGKILL信号,该信号将会使容器必然退出。
load与下面的save命令相对应,将下面sava命令打包的镜像通过load命令导入。
login登录到自己的Docker register,需有Docker Hub的注册账号.logout从Docker register退出登录。
logs用于查看容器的日志,它将输入(出)到容器标准输入(出)的数据,作为日志输出到docker logs命令的终端上。
常用于后台型容器。
87cb69be18bb是一个数据流为输入、输出和错误和容器,如下命令则会打印该容器的所有交互日志。
# docker logs 87cb69be18bbnetwork创建网络自定义网络,可指定网段、网关等参数。
创建一个my_network的网络,--ip-range:指定子网段,--subnet:指定一个网段# docker network create -d bridge --ip-range=192.168.1.0/24 --subnet=192.168.1.0/24 my_network查看网络# docker network inspect my_network列出网络# docker network lsbridge为默认的网络,172.17.0.0/16网段my_network 为自定义的网格删除网络# docker network rm my_network1连接网络将指定的网络连接到容器。
1.创建一个容器,不指定网络,默认会用bridge网络。
#docker run -it --name=web ubuntu:14.04 /bin/bash会看到默认有eth0:172.17.0.0/16段2.将该容器连接到my_network网络连接到的容器必须是running状态。
# docker network connect my_network web3.查看容器网络状态会看到多出一个eth1:192.168.1.0/24网段断开网络将容器与一个网络断开# docker network disconnect my_network web断开后该容器不在拥有该网络的地址。
pause暂停容器内的所有进程。
此时,通过docker stats可以观察到此时的资源使用情况是固定不变的,通过docker logs -f也观察不到日志的进一步输出。
# docker pause 87cb69be18bb容器的状态变为:Up About an hour (Paused)docker unpause 重新启动一个容器。
port输出容器端口与宿主机端口的映射情况# docker port blog80/tcp -> 0.0.0.0:80容器blog的内部端口80映射到宿主机的80端口,这样可通过宿主机的80端口查看容器blog提供的服务ps列出所有容器,其中docker ps用于查看正在运行的容器,ps -a则用于查看所有容器。
pull从registry中拉取镜像。
push本地的镜像上传到registry中rename更改容器的名字。
将容器tender_lichterman更名为web1.# docker rename tender_lichterman web1restart重启一个容器。
rm删除容器。
不可以删除一个运行中的容器,必须先用docker stop或docker kill使其停止。
当然可以强制删除,必须加-f参数。
如果要一次性删除所有容器,可使用docker rm -f `docker ps -a -q`,其中,-q指的是只列出容器的ID。
rmi删除一个或多个镜像。
save将镜像打包,与上面的load命令相对应. 两种方式:# docker save webserver >webserver.tar# docker save -o webserver.tar webserver:v1 search查找镜像。
start启动一个或多个停止的镜像。
启动一个镜像并启动一个交互试的终端。
# docker start -ia 87cb69be18bbroot@87cb69be18bb:/# lsstats动态显示容器的资源消耗情况,包括:CPU、内存、网络I/O. stop停止一个正在运行的容器。
tag对repository中的镜像进行重命名。
top查看容器中正在运行的进程。
unpause恢复容器内暂停的进程,与pause参数相对应。
version查看docker版本信息volume管理docker数据卷.创建数据卷1.创建一个名为data_v的数据卷# docker volume create --name='data_v'2.创建完数据卷后,其他容器即可挂载该容器。
可用于数据共享。
3.创建一个容器,把名为data_v的数据卷挂载到容器的/data目录# docker run -it -v data_v:/data ubuntu:14.04 /bin/bash查看数据卷查看刚刚创建的数据卷# docker volume inspect data_v列出数据卷# docker volume ls删除数据卷# docker volume rm data_vwait捉容器停止时的退出码。
执行此命令后,该命令会“hang”在当前终端,直到容器停止,此时,会打印出容器的退出码。