码迷,mamicode.com
首页 > 其他好文 > 详细

docker-基础命令

时间:2018-03-03 19:25:27      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:基础命令   端口映射   save   line   restart   mes   data   nbsp   保存   

docker 容器, 只能启动一个指定的程序, 程序结束, 容器退出

查看命令: docker --help

 

总得来说, docker的命令为以下几种: 

  • 容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]
  • 容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port]
  • 容器rootfs命令 — docker [commit|cp|diff]
  • 镜像仓库 — docker [login|pull|push|search]
  • 本地镜像管理 — docker [images|rmi|tag|build|history|save|import]
  • 其他命令 — docker [info|version]

1, 镜像操作: 

1, 搜索镜像
docker search alpine
2, 下载镜像
docker pull apline
3, 查看镜像
docker images
4, 删除镜像
docker rmi apline

2, 容器操作

1), 启动容器: 

a), 输出hellowork, 运行后立马退出

docker run centos /bin/echo helloworld

b), 打开终端并保持在容器中

docker run --name centos -d -it centos /bin/bash

参数解释:   --name: 指定运行名字, 

       --i: 始终保持链接状态

       -t: 打开伪终端并绑定在docker上

      /bin/bash: 需要执行的命令

运行的时候, 会先检测有没有镜像, 没有的话自动pull下载

c), 后台运行:  加 -d

d), 端口映射: 不加的话, 随机映射, 使用: 

         -p 主机端口:容器端口

docker run -d --name nginx -p 81:80 nginx

    使用 -p ip:hostPort:containerPort 可以指定主机的多个ip:port

    也可以使用 -p 指定多个 端口

2, 停止容器

docker stop CONTAINER_ID | CONTAINE_NAME

3, 查看容器

docker ps -a  # -a指查看所有, 不加只查看正在运行的

4, 进入容器

docker exec -it /bin/bash CONTAINER_NAME 
docker attach CONTAIN_ID: 进入后退出, 容器会退出

 -i: 始终打开链接

   -t: 打开伪终端使用绑定在docker上

   /bin/bash: 需要docker容器运行的命令

使用更好的方式进入容器

需要工具包:

yum install -y util-linux

查看docker 的pid

docker inspect --format "{{.State.Pid}}" CONTAINER_ID | CONTAINER_NAME

使用 nsenter 进入容器

nsenter --target 23907 --mount --uts --ipc --net --pid

写成脚本链接进容器: 

# /bin/bash
CNAME=$1
if [ ! -n "$1" ]; then
echo the param CONTAINER_ID or CONTAINER_NAME is must
exit 0
fi

CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
nsenter --target "$CPID" --mount --uts --ipc --net --pid

5, 启动已经终止的程序

docker start CONTAIN_ID

6, 删除容器

docker rm

7, 保存正在运行的容器 

docker commit -m yourtags CONTAINER_ID wenbronk/CONTANER_NAME

 

3, docker数据管理

  数据卷容器: --volumes-

  数据卷: -v /data     -v src:dst: 将数据直接写在物理机上, 也可以挂载文件到容器中

    可添加 -v /data:/opt/nginx/log:ro   添加 ro 参数 只读

1, 挂载目录或文件, 到docker 容器中 

docker run -d --name=tomcat -v /b2b:/test -it centos /bin/bash

 此时操作本地的 /b2b 目录, 就会在docker容器下看到 相应的文件管理

2, 可以使用 volumes-from参数, 将docker容器启动为数据卷容器

  实现容器间的数据共享

docker run -it --volumes-from tomcat --name db1 centos

这样 两个容器都可以访问该目录, 且做的更改对其他容器是可见的

3, 数据备份和恢复

docker run --volumes-from dbdata -v $(pwd):/backup --name worker centos tar zcf /backup/backup.tar.gz /dbdata

创建数据卷容器: 

docker run -v /dbdata/dbdata --name db centos /bin/bash

进行数据恢复

docker run --volumes-from db -v $(pwd):/backup  centos tar xf /backup/backup.tar.gz

 

docker-基础命令

标签:基础命令   端口映射   save   line   restart   mes   data   nbsp   保存   

原文地址:https://www.cnblogs.com/wenbronk/p/8497002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!