Docker離線安裝以及本地yum源構建
http://blog.csdn.net/joniers/article/details/64122820
http://blog.csdn.net/wsscy2004/article/details/25878363git
在線安裝
yum install –downloadonly –downloaddir=/home/docker-ce/dockerRpm docker-ce docker
離線安裝
一、備份原yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bkjson
二、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-7ubuntu
三、createrepo -d /opt/dockerRpm
--yum repolist
yum clean all
yum makecache
--yum list 看是否輸出了新的rpm包,若是能查詢到,證實配置成功vim
四、yum -y install docker-cecentos
五、還原原yum源
mv /etc/yum.repos.d/CentOS-Base.repo.bk /etc/yum.repos.d/CentOS-Base.repotomcat
基本命令
啓動docker
service docker startbash
查看鏡像
docker images
docker images centosapp
配置Docker中國區官方鏡像
http://blog.csdn.net/zzy1078689276/article/details/77371782
一、vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
二、使docker的配置文件生效
systemctl daemon-reload
systemctl restart dockerssh
搜索鏡像
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\b" | awk '{print $2}' | cut -d / -f1
ifconfig docker0 |grep "inet\b" | awk '{print $2}'
Docker經常使用命令
http://blog.csdn.net/zhang__jiayu/article/details/42611469
Docker CE 鏡像源站 阿里雲安裝dockerhttps://yq.aliyun.com/articles/110806?commentId=11066001-在 Cent OS 7 上安裝 docker-cehttp://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號。