docker 的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 | docker 学习 1. Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。 输出Hello world docker run ubuntu:15.10 /bin/echo "Hello world" 以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world" ,然后输出结果。 2.运行交互式的容器 我们通过docker的两个参数 -i -t,让docker运行的容器实现 "对话" 的能力 docker run -i -t ubuntu:15.10 /bin/bash 各个参数解析: -t:在新容器内指定一个伪终端或终端。 -i:允许你对容器内的标准输入 (STDIN) 进行交互。 此时我们已进入一个 ubuntu15.10系统的容器 我们尝试在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表 我们可以通过运行exit命令或者使用CTRL+D来退出容器。 3. 启动容器(后台模式) 使用以下命令创建一个以进程方式运行的容器 docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 在输出中,我们没有看到期望的 "hello world" ,而是一串长字符 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63 这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。 首先,我们需要确认容器有在运行,可以通过 docker ps 来查看 CONTAINER ID:容器ID NAMES:自动分配的容器名称 4. 在容器内使用docker logs命令,查看容器内的标准输出 根据容器 id查看容器内部的输出 docker logs 2b1b7a428627 根据容器 name查看容器内部的输出 docker logs amazing_cori 5. 停止容器 docker stop 容器ID / 容器名称 6. 查看硬件使用率 docker stats 7.运行一个web应用 前面我们运行的容器并没有一些什么特别的用处。 接下来让我们尝试使用 docker 构建一个 web 应用程序。 我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。 docker pull training/webapp # 载入镜像 docker run -d -P training/webapp python app.py #运行一个容器 参数说明: -d:让容器在后台运行。 -P:将容器内部使用的网络端口映射到我们使用的主机上。 Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上。 这时我们可以通过浏览器访问WEB应用 我们也可以通过 -p 参数来设置不一样的端口: docker run -d -p 5000:5000 training/webapp python app.py 容器内部的 5000 端口映射到我们本地主机的 5000 端口上。 8.网络端口的快捷方式 通过 docker ps 命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port,使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号。 上面我们创建的 web 应用容器 ID 为 bf08b7f2cd89 名字为 wizardly_chandrasekhar。 我可以使用 docker port bf08b7f2cd89 或 docker port wizardly_chandrasekhar 来查看容器端口的映射情况。 docker port bf08b7f2cd89 9. 查看 WEB 应用程序日志 docker logs [ID或者名字] 可以查看容器内部的标准输出。 docker logs -f 44e91ae4f916 image 10 .查看WEB应用程序容器的进程 docker top 44e91ae4f916 11. 检查 WEB 应用程序 使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。 docker inspect 44e91ae4f916 12. docker ps -l 查询最后一次创建的容器: 13. 移除WEB应用容器 我们可以使用 docker rm 命令来删除不需要的容器 删除容器时,容器必须是停止状态,否则会报如下错误 Error response from daemon: You cannot remove a running container xx ,Stop the container before attempting removal or force remove 14. Docker 镜像使用 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。 下面我们来学习: 1、管理和使用本地 Docker 主机镜像 2、创建镜像 15. 列出镜像列表 我们可以使用 docker images 来列出本地主机上的镜像。 16. 各个选项说明: REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。 所以,我们如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下: docker run -t -i ubuntu:15.10 /bin/bash 如果要使用版本为14.04的ubuntu系统镜像来运行容器时,命令如下: docker run -t -i ubuntu:14.04 /bin/bash 17. 获取一个新的镜像 当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。 docker pull ubuntu:13.10 18. 查找镜像 我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https: //hub.docker.com/ 我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。 NAME:镜像仓库源的名称 DESCRIPTION:镜像的描述 OFFICIAL:是否docker官方发布 19. 拖取镜像 我们决定使用上图中的httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。 下载完成后,我们就可以使用这个镜像了。 docker run httpd 20. 创建镜像 当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。 1.从已经创建的容器中更新镜像,并且提交这个镜像 2.使用 Dockerfile 指令来创建一个新的镜像 在运行的容器内使用 mkdir create a dir 在完成操作之后,输入 exit命令来退出这个容器。 此时ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。 docker commit -m= "has update" -a= "gaocng" cff94d57f05d gaocong/ubuntu:v1 21. 构建镜像 我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。 FROM centos:6.7 MAINTAINER Fisher "71849@qq.com" RUN /bin/echo 'root:123456' |chpasswd RUN useradd runoob RUN /bin/echo 'runoob:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/ default /local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D 每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。 第一条FROM,指定使用哪个镜像源 RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。 然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。 docker build -t runoob/centos:6.7 . 参数说明: -t :指定要创建的目标镜像名 . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径 使用docker images 查看创建的镜像已经在列表中存在,镜像ID为860c279d2fec 后台运行自己构建的镜像 docker run -d -p 22:22 gaocong/centos:7 22 .容器命名 当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 --name 标识来命名容器,例如: 23. 容器IP的查方法 docker inspect 容器ID或容器名 |grep '"IPAddress"' 24. 使用docker exec进入Docker容器 docker exec -it 775c7c9ee1e1 /bin/bash 或 docker exec -it 4a59202ff53d /bin/sh |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2018-04-25 winform 应用log4net做日志记录到mysql
2018-04-25 c# 单实例运行
2018-04-25 Sql Server数据库监听 c#代码
2018-04-25 winform程序开机自动启动
2017-04-25 工厂方法模式
2017-04-25 简单工厂模式
2017-04-25 正则表达式练习2017年4月25日 11:41:23