docker安装文档

Docker离线安装以及本地yum源构建
http://blog.csdn.net/joniers/article/details/64122820
http://blog.csdn.net/wsscy2004/article/details/25878363

在线安装
yum install –downloadonly –downloaddir=/home/docker-ce/dockerRpm docker-ce

离线安装
1、备份原yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk

2、vim /etc/yum.repos.d/docker-ce.repo
[docker]
name=docker
baseurl=file:///opt/dockerRpm
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

3、createrepo -d /opt/dockerRpm
--yum repolist
yum clean all
yum makecache
--yum list 看是否输出了新的rpm包,如果能查询到,证明配置成功

4、yum -y install docker-ce

5、还原原yum源
mv /etc/yum.repos.d/CentOS-Base.repo.bk /etc/yum.repos.d/CentOS-Base.repo

基本命令
启动docker
service docker start

查看镜像
docker images
docker images centos

配置Docker中国区官方镜像
http://blog.csdn.net/zzy1078689276/article/details/77371782
1、vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
2、使docker的配置文件生效
systemctl daemon-reload
systemctl restart docker

搜索镜像
docker search centos | grep 6

拉取镜像
docker pull centos:centos6
docker run centos 运行,不存在会自动拉取

创建新容器并运行bash
docker run -it centos:centos6 #前台启动
docker run -dit centos:centos6 #仅仅启动时放后台(仅-d 运行不了)
停止docker服务,所有的容器都会停止

显示所有容器
docker ps -a

查看后台运行的容器
docker logs [-f] id/name 输出容器日志 -f:实时输出

启动存在的容器
docker start id/name

连接启动的容器
docker attach id/name

停止存在的容器
docker stop id/name

容器内退出
ctrl + D (exit) 退出并停止
[ctrl + P][ctrl + Q] 仅退出

在容器中执行命令,[ctrl+D]退出后,不会终止容器运行
docker exec -it [CONTAINER_NAME or CONTAINER_ID] /bin/bash

删除未运行容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
-q : 静默模式,只显示容器编号。

删除所有容器
docker ps -a | awk '{print $1 }'|xargs docker rm

删除镜像
docker rmi centos:lastest #lastest为tag
docker rmi 7ea307891843 #7ea307891843为IMAGE ID
docker images |grep none |awk '{print $3}'|xargs docker rmi [-f]

删除所有镜像
docker rmi $(docker images -q)

#构建新镜像:
docker build -t centos6:memcached ./memcached #./memcached目录下有Dockerfile文件

#运行新镜像:
docker run -d -p 11211:11211 centos6:memcached
docker run --device=/dev/sda:/dev/xvdc:r 挂载硬件

#docker停止运行的镜像
docker stop/kill container_id
docker stop `docker ps | grep memcached |awk { 'print $1'}`

创建容器 且不采用分配的容器id 使用自定义名字
docker run -dit --name myconn

查看镜像/容器信息
docker inspect [ image_name, image_id,container_name,container_id,]

创建容器(选项全)
-e 将自定义环境变量传入容器
docker run -dit --privileged=true -e P_HOST=172.17.0.1 -p 9100:9100 --device=/dev/bus/usb/002/020:/dev/dog/superdog/superdog:r -v /opt:/opt --name fosafer_docker centos:centos6 /bin/bash

ln -sf /dev/bus/usb/001/017 /dev/dog/superdog/1-2.1

docker run -dit --privileged=true -e P_HOST=172.17.0.1 -p 9100:9100 --device=/dev/bus/usb/001/017:/dev/dog/superdog/1-2.1:r -v /opt:/opt --name fosafer_docker(容器名) centos:centos6(镜像名/ID) /bin/bash

在docker下载ubuntu和分享/dev/ttyUSB0
使用可以使用访问USB设备没有–privileged模式:
docker run -t -i --device=/dev/ttyUSB0 ubuntu bash
或者,假设您的USB设备可用于在/ dev / bus / usb中的主机上的驱动程序工作等,您可以使用特权模式和volumes选项将其装入容器。例如:
docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb ubuntu bash

数据传输
正确
docker cp haha:/src dest
docker cp src haha:/dest

主机读容器
docker cp <containerId>:/file/path/within/container /host/path/target

主机写容器
推荐
docker inspect -f '{{.Id}}' haha
显示 d8e70
cp file.txt /var/lib/docker/aufs/mnt/**d8e

1.用-v挂载主机数据卷到容器内
docker run -v /path/to/hostdir:/mnt $container
在容器内拷贝
cp /mnt/sourcefile /path/to/destfile

2.直接在主机上拷贝到容器物理存储系统
A. 获取容器名称或者id :
docker ps

B. 获取整个容器的id
docker inspect -f '{{.Id}}' 步骤A获取的名称或者id

C. 在主机上拷贝文件:
sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE

sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc<<id>>/rootfs/root

例子:
$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8e703d7e303 solidleon/ssh:latest /usr/sbin/sshd -D cranky_pare

$ docker inspect -f '{{.Id}}' cranky_pare
or
$ docker inspect -f '{{.Id}}' d8e703d7e303

d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

$ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

3.用输入输出符
docker run -i ubuntu /bin/bash -c 'cat > /path/to/container/file' < /path/to/host/file/

docker exec -i <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/ 可行
docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/ 有点问题


镜像/容器导入导出
镜像的导出
docker images
docker save 9045 > tomcat8-apr.tar #9045为镜像ID的前四位

镜像的导入
docker load < tomcat8-apr.tar
docker tag 9045 tomcat8-apr:3.0 #添加标签

持久化:::BEST:::
容器的导出
docker export b91d9ad83efa > tomcat80824.tar

容器的导入
docker import tomcat80824.tar

镜像和容器 导出和导入的区别
镜像导入和容器导入的区别:
1)容器导入 是将当前容器 变成一个新的镜像
2)镜像导入 是复制的过程

save 和 export区别:
1)save 保存镜像所有的信息-包含历史
2)export 只导出当前的信息


docker镜像导入导出
http://www.jianshu.com/p/8408e06b7273
导入
docker import auth_cloud.tar auth_cloud:v1

获取宿主机ip
ip addr show docker0 | grep "inet" | awk '{print $2}' | cut -d / -f1
ifconfig docker0 |grep "inet" | awk '{print $2}'

Docker常用命令
http://blog.csdn.net/zhang__jiayu/article/details/42611469

Docker CE 镜像源站 阿里云安装docker
https://yq.aliyun.com/articles/110806?commentId=11066
001-在 Cent OS 7 上安装 docker-ce
http://blog.csdn.net/xixiworld/article/details/71438794
Centos 环境Docker离线安装方式
http://blog.csdn.net/h363659487/article/details/77159306
保存对容器的修改
无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)
正确的命令:
$docker commit 698 learn/ping
执行完docker commit命令之后,会返回新版本镜像的id号。

原文地址:https://www.cnblogs.com/sherlockhomles/p/8717823.html