docker run --name mydocker -t -i centos /bin/bash 详解
-t 分配一个尾终端
-i 保持打开
/bin/bash 命令
容器启动运行结束就关闭
容器名称和主机名一样
docker run:先检测是否有centos进行,检查是否有(没有就下载)
启动容器,分配文件系统,给一IP等等
------------------------------------------------------------------------------------------------------------------------
docker search 搜索镜像
docker pull 获取镜像
docker image 查看镜像
docker rmi 删除镜像
容器的理念是单进程
docker run --name -h hostname 启动容器
docker stop CONTAINER ID 停止容器
docker ps -a -l 查看容器(-a显示容器包括运行和不运行的 )
docker exec | docker attach nsenter 进入容器
docker rm 删除容器
docker rm afa16afddbc3
docker rm -f afa16afddbc3(删除一个正在运行的容器)
docker inspect --format "{{.State.Pid}}" 6ba6446f204a 查看容器pid
nsenter进入容器不退出 nsenter -t 17105 -u -i -n -p
Options:
-t, --target <pid> target process to get namespaces from-m, --mount[=<file>] enter mount namespace
-u, --uts[=<file>] enter UTS namespace (hostname etc)
-i, --ipc[=<file>] enter System V IPC namespace
-n, --net[=<file>] enter network namespace
-p, --pid[=<file>] enter pid namespace
-U, --user[=<file>] enter user namespace
-S, --setuid <uid> set uid in entered namespace
-G, --setgid <gid> set gid in entered namespace
--preserve-credentials do not touch uids or gids
-r, --root[=<dir>] set the root directory
-w, --wd[=<dir>] set the working directory
-F, --no-fork do not fork before exec'ing <program>
-Z, --follow-context set SELinux context according to --target PID
-h, --help display this help and exit
-V, --version output version information and exit
正在运行的docker id
docker ps -a -q
--------------------------------------------------
docker网络
端口映射:
随机映射 docker run -P
指定映射 -p hostport:containerPort
-p ip:hostprot:containerPort
-p ip::containerPort
-p hostprot:containerPort
-p hostport::containerPort:udp
docker run -d -p 81:80 nginx
-----------------------------------------------------------------
docker数据管理
数据卷 数据卷容器
-v /data --volumes-
v- src:dst from
创建数据卷 docker run -it --name volume-test1 -v /data centos
列出容器内容 docker inspect 容器名
挂载目录或文件到容器中:docker run -it -v /opt(源):/opt(目标):(权限ro rw等) centos
一个容器进入另一个容器docker run -it --name test1 --volumes-from nfs centos
----------------------------------------------------------------------------
基于容器创建镜像
1. 基于centos镜像启动容器 docker run --name mynginx -it centos
2.安装nginx
(1)打开mirrors.aliyun.com
(2)复制epel地址 rpm -ihv https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
(3) yum install -y nginx
3. 创建容器 docker commit -m "my nginx" 5bf558e31910 yangkun(用户名)/mynginx:v1(标签) 创建之后变成镜像
因为nginx是后台运行起不来
4 使用v1镜像再启动一个容器 docker run -it --name nginxv1 yangkun/myngingx:v1
5 修改配置文件 vi /etc/nginx/nginx/conf 添加daemon off;
6.启动新容器 docker commit -m "my nginx" b4d5f623d55f yangkun/mynginx:v2 成为镜像
7.基于V2镜像启动容器docker run -d -p 82:80 /yangkun/mynginx:v2 ngxin
访问82端口