栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker【容器】

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker【容器】

文章目录
    • 容器的概念
    • Docker镜像
    • Docker容器
    • 容器的基本操作
    • 查看容器
    • 启动容器
    • 启动已经终止的容
    • 以守护进程的方式启动容器
    • 停止容器
    • 删除容器
    • 进入容器
    • 基于容器创建镜像

容器的概念

Docker大部分的操作都是围绕着它的三大核心概念:镜像、容器和仓库。因此,准备把握这三大核心概念对于掌握Docker技术尤为重要。

Docker镜像

Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。

例如:一个镜像可以包含一个基本你的操作系统环境,里面仅安装了Apache应用程序(或用户需要的其
它软件)。可以把它称为一个Apache镜像。
镜像是创建Docker容器的基础。
通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚
至可以从网上下载一个已经做好的应用镜像直接使用。

Docker容器

容器就是运行镜像的实例. 镜像看作是静态的,容器是动态的。
Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、
互不可见的。
可以把容器看做一个简易版本的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)
以及运行在其中的应用程序打包而成的盒子。

容器的基本操作

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。

wuyou@unbutu:~$ docker
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers

可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。
例如我们要查看 docker images 指令的具体使用方法:

wuyou@unbutu:~$ docker images --help

查看容器

示例一:

wuyou@unbutu:~$ docker ps
注意:
管理docker容器可以通过名称,也可以通过ID

示例二:
ps是显示正在运行的容器, -a是显示所有运行过的容器,包括已经不运行的容器

wuyou@unbutu:~$ docker ps -a

启动容器

命令格式:

docker run <参数,可选> [docker_image] [执行的命令
docker run 其实 是两个命令的集合体 docker create + docker start

示例一: 启动一个镜像,输入信息后关闭容器

wuyou@unbutu:~$ docker run nginx /bin/echo "hello docker"
hello docker

示例二: 启动nginx

wuyou@unbutu:~$ docker run nginx

查看容器信息
通过查看容器信息,获取容器的IP信息---------

wuyou@unbutu:~$ docker inspect boring_ride
				"Networks": {
				"bridge": {
				"IPAMConfig": null,
				"Links": null,
				"Aliases": null,
				"Gateway": "172.17.0.1",
				"IPAddress": "172.17.0.2",
				"IPPrefixLen": 16,
				"IPv6Gateway": "",
				"GlobalIPv6Address": "",
				"GlobalIPv6PrefixLen": 0,
				"MacAddress": "02:42:ac:11:00:02",
				"DriverOpts": null
								}
	}

访问nginx

wuyou@unbutu:~$ curl http://172.17.0.2

启动已经终止的容

在生产过程中,常常会出现运行和不运行的容器,我们使用 start 命令开起一个已关闭的容器
命令格式:

  docker start [OPTIONS] CONTAINER [CONTAINER...]

示例:

wuyou@unbutu:~$ docker start boring_ride
boring_ride
wuyou@unbutu:~$

测试

wuyou@unbutu:~$ curl http://172.17.0.2



Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

wuyou@unbutu:~$
以守护进程的方式启动容器

更多的时候,需要让Docker容器在后台以守护形式运行。此时可以通过添加-d参数来实现
命令格式:

docker run -d [image_name] command …

示例:

wuyou@unbutu:~$ docker run -d nginx
1e25168a4e8563ede8396ab434f4fcc85effc5170aad22eeedd60c6d2c66bce5
wuyou@unbutu:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
1e25168a4e85 nginx "nginx -g 'daemon of…" 7 seconds
ago Up 6 seconds 80/tcp heuristic_clarke
98809071af66 nginx "nginx -g 'daemon of…" 17 minutes
ago Up 3 minutes 80/tcp boring_ride
wuyou@unbutu:~$
停止容器

示例一: 正常停止容器

wuyou@unbutu:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
1e25168a4e85 nginx "nginx -g 'daemon of…" 2 minutes
ago Up 2 minutes 80/tcp heuristic_clarke
wuyou@unbutu:~$
wuyou@unbutu:~$
wuyou@unbutu:~$
wuyou@unbutu:~$ docker stop 1e25168a4e85
1e25168a4e85
wuyou@unbutu:~$

示例二:非正常停止容器

wuyou@unbutu:~$ docker run -d nginx

删除容器

示例一: 正常删除,删除已经关闭的

wuyou@unbutu:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
206bc8ad619a nginx “nginx -g 'daemon of…” 3 minutes
ago Exited (137) 2 minutes ago reverent_haibt
1e25168a4e85 nginx “nginx -g 'daemon of…” 6 minutes
ago Exited (0) 4 minutes ago
heuristic_clarke
7da6d85f2655 nginx “nginx -g 'daemon of…” 11 minutes
ago Exited (0) 10 minutes ago strange_neumann
8ea249ee5428 nginx “nginx -g 'daemon of…” 12 minutes
ago Exited (0) 12 minutes ago
compassionate_mcclintock
98809071af66 nginx “nginx -g 'daemon of…” 23 minutes
ago Exited (0) 4 minutes ago boring_ride
c5187780ca57 nginx “/bin/echo 'hello do…” 24 minutes
ago Exited (0) 24 minutes ago zen_goldstine
cf175bb13b8e hello-world “/hello” About an
hour ago Exited (0) About an hour ago busy_jepsen
wuyou@unbutu:~$ docker rm busy_jepsen
busy_jepsen
wuyou@unbutu:~$ docker ps -a
wuyou@unbutu:~$

示例二: 强制删除(删除正在运行的,不是运行的不能删除)

wuyou@unbutu:~$ docker run nginx
-f 强制删除
docker rm -f adoring_newton

示例三: 强制批量删除
删除全部的容器,不管运行的还是关闭的(慎用)

wuyou@unbutu:~$ docker rm -f $(docker ps -a -q)

进入容器

示例一: 创建容器的同时进入容器

wuyou@unbutu:~$ docker run --name “myubuntu” -it ubuntu /bin/bash

wuyou@unbutu:~$ docker run --name nginx-1 -it nginx /bin/bash
说明:
#docker 容器启动命令参数详解:
#--name:给容器定义一个名称
#-i:则让容器的标准输入保持打开。
#-t:让docker分配一个伪终端,并绑定到容器的标准输入上
#/bin/bash:执行一个命令

示例二: 手工方式进入容器

wuyou@unbutu:~$ docker run -d nginx
wuyou@unbutu:~$	docker exec -it clever_johnson /bin/bash

测试

wuyou@unbutu:~$ curl http://172.17.0.2

示例三:生产方式进入容器
docker.sh

创建脚本
wuyou@unbutu:~$ vim docker.sh

#!/bin/bash
# 定义进入仓库函数
docker_in(){
NAME_ID=$1
PID=$(docker inspect --format {{.State.Pid}} $NAME_ID)
sudo nsenter --target $PID --mount --uts --ipc --net --pid
}
docker_in $1

wuyou@unbutu:~$ chmod +x docker.sh
wuyou@unbutu:~$ ./docker.sh clever_johnson

基于容器创建镜像
  • 下次跟新
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号