玖叶教程网

前端编程开发入门

docker使用简介(docker shim)

一 docker服务端和客户端

declare -x DOCKER_HOST="192.168.2.162

export DOCKER_HOST=192.168.2.162

docker -H tcp://192.168.2.162:2375 images

二 docker daemon配置

cat /etc/sysconfig/docker

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'

三 docker镜像

docker pull 镜像名

docker search 镜像名

docker images 列出镜像列表

docker image ls 等同于 docker images

docker rmi image_id 删除镜像

docker save 保存镜像

docker load 装载镜像

四 docker容器管理命令

docker rm `docker ps -a -q`查看所有容器

docker run -d -p 8888:8888 -p 55555:55555 --name btsync ctlc/btsync 创建容器

docker create -it ubuntu:latest 创建容器

docker start container

启动容器

docker inspect container 获取容器的详细信息

docker stop container 停止容器

docker rm container 删除容器

docker network ls 列出docker网络

docker run -it --rm ubuntu:16.04 /bin/bash rm 的意思是容器退出随之将其删除

五 进入容器

1.docker attach

多个窗口同时attach到同一个容器的时候,所有窗口都会同步显示。远程演示的时候可以使用。

2. docker exec -it container /bin/bash

3.nsenter工具

PID = $(docker inspect --format "{{.State.Pid}}" <container>)

nsenter --target $PID --mount --uts --pic --net --pid

六 导入和导出容器

docker export container >test_for_export.tar

cat test_for_export.tar |docker import - test/ubuntu:v1.0

容器是从镜像创建的应用运行实例。镜像自身是只读的。容器从镜像启动的时候,docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。

七 docker数据卷

在容器内创建一个数据卷

docker run -d -P --name web -v /webapp training/webapp python app.py

使用training/webapp镜像创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录

挂载一个主机目录作为数据卷

docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py

加载主机的/src/webapp目录到容器的/opt/webapp目录

挂载一个本地主机文件作为数据卷

docker run --rm -it -v /root/.bash_history:/.bash_history ubuntu /bin/bash

这样就可以记录在容器输入过的命令历史了

数据卷容器

docker -ti -v /dbdata --name dbdata ubuntu

然后可以在其他容器中使用--volumes-from 来挂载dbdata容器中的数据卷

如创建db1和db2容器,并从dbdata容器挂载数据卷

docker run -it --volumes-from dbdata --name db1 ubuntu

docker run -it --volumes-from dbdata --name db2 ubuntu

在dbdata容器中创建一个test文件

在db1容器中可以查看到

可以多次使用 --volumes-from 参数来从多个容器挂载多个数据卷,还可以从其他已经挂载的容器卷的容器来挂载数据卷

docker run -d --name db3 --volumes-from db1 training/postgres

利用数据卷容器来迁移数据

备份

docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu

tar cvf /backup/backup.tar /dbdata

首先利用ubuntu镜像创建一个容器worker 使用--volumes-from dbdata参数来让worker容器挂载dbdata容器的数据卷即dbdata数据卷

使用-v $(pwd):/backup 参数来挂载本地的当前目录到worker的容器/backup目录

容器woker启动后 使用tar cvf /backup/bakcup.tar /dbdata命令来讲/dbdata下内容备份为容器的 /backup/backup.tar 即宿主主机当前目录下的backup.tar

恢复

如果要恢复数据到一个容器,可以按照下面操作

首先创建一个带有数据卷的容器dbdata2

docker run -v /dbdata --name dbdata2 ubuntu /bin/bash

然后创建和一个新的容器,挂载dbdata2的容器。并使untar解压备份文件到所挂载的容器卷中

docker run --volumes-from dbdata2 -v $(pwd):/backup busybox

tar xvf /backup/backup.tar

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言