docker容器
·
docker 容器
文章目录
容器的概念
Docker大部分的操作都是围绕着它的三大核心概念:镜像、容器和仓库。因此,准备把握这三大核心概 念对于掌握Docker技术尤为重要。
Docker容器
容器就是运行镜像的实例. 镜像看作是静态的,容器是动态的。 Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。 容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、 互不可见的。 可以把容器看做一个简易版本的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等) 以及运行在其中的应用程序打包而成的盒子。
容器的基本操作 命令
查看容器
docker ps
管理docker容器可以通过名称,也可以通过ID
查看所有的容器 (显示所有运行过的容器 )
docker ps -a
ps是显示正在运行的容器, -a是显示所有运行过的容器,包括已经不运行的容器
启动容器
docker run <参数,可选> [docker_image] [执行的命令]
docker run 其实 是两个命令的集合体 docker create + docker start
示例一: 启动一个镜像,输入信息后关闭容器
#示例一
docker run nginx /bin/echo "hello docker"
#示例二
docker run nginx
查看容器信息
docker inspect Name
启动已经终止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
# 示例:
docker start boring_ride
以守护进程的方式启动容器
docker run -d [image_name] command ...
#示例:
docker run -d nginx
停止容器
docker stop
# 示例一: 正常停止容器
docker stop 1e25168a4e85
# 示例二:非正常停止容器
docker kill 206bc8ad619a
删除容器
docker rm
# 示例一: 正常删除,删除已经关闭的
docker rm busy_jepsen
# 示例二: 强制删除 删除正在运行的,不是运行的不能删除
docker rm -f adoring_newton
# 实例三: 强制批量删除 删除全部的容器,不管运行的还是关闭的(慎用)
docker rm -f $(docker ps -a -q)
进入容器
docker exec
# 示例一: 创建容器的同时进入容器
docker run --name "myubuntu" -it ubuntu /bin/bash
#docker 容器启动命令参数详解:
#--name:给容器定义一个名称
#-i:则让容器的标准输入保持打开。
#-t:让docker分配一个伪终端,并绑定到容器的标准输入上
#/bin/bash:执行一个命令
# 示例二: 手工方式进入容器
deng@itcast:~$ docker run -d nginx
e59693e9357873b66a9867526e1b88909d84f75fda95dae36cc2d76dab56ecc0
deng@itcast:~$
deng@itcast:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e59693e93578 nginx "nginx -g 'daemon of…" 5 seconds
ago Up 3 seconds 80/tcp clever_johnson
deng@itcast:~$ docker exec -it clever_johnson /bin/bash
root@e59693e93578:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
root@e59693e93578:/#
# 示例三:生产方式进入容器 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
chmod +x docker.sh
./docker.sh clever_johnson
基于容器创建镜像
$ docker run -d nginx
deng@itcast:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
64a478692f74 nginx "nginx -g 'daemon of…" 4 seconds
ago Up 3 seconds 80/tcp vibrant_gould
e59693e93578 nginx "nginx -g 'daemon of…" 26 minutes
ago Up 26 minutes 80/tcp clever_johnson
deng@itcast:~$ docker commit -m "修改了主页" -a "itcast" clever_johnson
查看修改历史
docker history mynginx:v1.0
方式二:( 不推荐使用 )
docker export <container_id> > filename.tar
cat filename.tar | docker import - sswang-test
示例:
导出容器 cbb626d83a8e快照到本地文件 mynginx.tar。
deng@itcast:~$ docker export cbb626d83a8e > mynginx.tar
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 mynginx.tar 导入到镜 像 mynginx:v1
deng@itcast:~$ cat mynginx.tar | docker import - mynginx:v1
sha256:8bb24ef09e6f7c72ef7dd732decc9fc5407b8c3958ef6cfb7bdc3da1cac46e29
deng@itcast:~$ docker images
更多推荐
所有评论(0)