docker入门

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     target process to get namespaces from
 -m, --mount[=]   enter mount namespace
 -u, --uts[=]     enter UTS namespace (hostname etc)
 -i, --ipc[=]     enter System V IPC namespace
 -n, --net[=]     enter network namespace
 -p, --pid[=]     enter pid namespace
 -U, --user[=]    enter user namespace
 -S, --setuid     set uid in entered namespace
 -G, --setgid     set gid in entered namespace
     --preserve-credentials do not touch uids or gids
 -r, --root[=]     set the root directory
 -w, --wd[=]       set the working directory
 -F, --no-fork          do not fork before exec'ing
 -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端口

你可能感兴趣的:(docker)