Docker离线安装以及本地yum源构建
在线安装
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-73、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中国区官方镜像
"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/bashln -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 psCONTAINER 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}}' d8e703d7e303d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5
$ 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\b" | awk '{print $2}' | cut -d / -f1
ifconfig docker0 |grep "inet\b" | awk '{print $2}'
Docker常用命令
Docker CE 镜像源站 阿里云安装docker
https://yq.aliyun.com/articles/110806?commentId=11066001-在 Cent OS 7 上安装 docker-ce
Centos 环境Docker离线安装方式
保存对容器的修改
无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)
正确的命令:
$docker commit 698 learn/ping
执行完docker commit命令之后,会返回新版本镜像的id号。