#------------------------------------------------------------前端
# 運行容器java
#------------------------------------------------------------nginx
# 運行dockerredis
# -it表示前端運行docker
docker run -it --restart=always centos /bin/bashshell
# 後端運行並映射80端口後端
docker run -dt -p 80:80 --restart=always --name mycentos my/oscentos
# 端口映射,IP訪問限制bash
docker run -dt -p 127.0.0.1:80:80 --restart=always --name mycentos my/osssh
# 不建立Container運行docker
docker run --rm -it centos /bin/echo haha
# 建立Container,起個名字
docker run -it --name testecho --restart=always -b centos /bin/bash
# 重命名p_w_picpath
docker tag p_w_picpath_name new_p_w_picpath_nameL:tag
# 運行centos的終端
docker run -it centos --restart=always /bin/bash
# Container重命名
docker rename nginx nginx_1
#進入容器(調出容器的bash)
docker exec -it container-name /bin/bash
#------------------------------------------------------------
# 退出
#------------------------------------------------------------
# attach(附加)的容器退出時會中止Container
exit
# 不中止Container狀況下退出方法
快捷鍵:ctrl + p, ctrl + q
*exec方式調用容器bash的方式敲exit命令只是推出shell不會中止容器
#------------------------------------------------------------
# 運行Container
#------------------------------------------------------------
# 運行已經退出的docker centos終端
docker start 0a2b06b59448或者container-name
# 運行並附加到container
docker start -i ContainerID
# 中止正在運行的docker centos終端
docker stop 0a2b06b59448
# 附加到docker終端Container,前提是此Container已經運行中
docker attach 3b6165b7504a
# 列出全部的Container
docker ps -a
# 打印docker的運行終端顯示
docker logs 81a4f43c74ed
# 刪除Container
docker rm 3b6165b7504a
# 刪除全部Container
docker rm $(docker ps -a)
# 列出全部鏡像
docker p_w_picpaths
# 搜索鏡像
docker search centos
# 下載鏡像
docker pull centos
# 提交鏡像
docker commit mycentos my/os:latest
#------------------------------------------------------------
# 鏡像導入導出及運行
#------------------------------------------------------------
# 導入容器爲鏡像文件
docker export 3b6165b7504a > centos.tar
# 導入鏡像
cat centos.tar | docker import - test/centos:v1.0
# 運行導入的鏡像
docker run -it test/centos:v1.0 /bin/bash
# 刪除鏡像
docker rmi test/centos:v1.0
# 查看docker的信息,包括安裝路徑、CPU、內存等
docker info
# Container執行命令,進入容器終端
docker exec -it ContainerID bash
# 進入容器終端
nsenter --mount --uts --ipc --net --pid --target $(docker inspect --format "``.`State`.`Pid`""4cd5af004a52")
# 查看Container的端口映射
docker port ContainerID
#------------------------------------------------------------
# 動態設置運行時的環境變量# 使用參數--env
# 查看Container的環境變量方法,能夠進入Container的bash中運行命令:env
#------------------------------------------------------------
# 查看Container的環境變量
docker exec -it nginx env
# 查看Container的Host文件
docker exec -it nginx cat /etc/hosts
# 設置Container的環境變量
docker run --rm -it --name test --env MYHOME=/home --env TEST=/home --env PATH=$PATH:/home centos bash
# 也能夠使用inspect查看Container的環境變量
docker inspect nginx
#------------------------------------------------------------
# 端口映射,IP訪問限制
#------------------------------------------------------------
docker run -dt -p 127.0.0.1:90:80 --name jetty img_jetty
docker run -dt -p 127.0.0.1:91:80 --name jetty1 img_jetty
docker run -dt -p 80:80 --name nginx --link jetty:java --link jetty1:java1 img_nginx
#------------------------------------------------------------
# 鏡像保存與重加載
#------------------------------------------------------------
# 保存鏡像
docker save img_java > img_java.tar
# 從新加載鏡像
docker load < img_java.tar
# 查詢鏡像歷史
docker history img_java
# 查看鏡像信息Json
docker inspect img_java
#------------------------------------------------------------
# 文件複製
#------------------------------------------------------------
# 從Container複製文件autorun.sh到Host主機的/home目錄下
# 也能夠是目錄複製
docker cp test:/etc/init.d/autorun.sh /home
# 從Host主機複製文件或文件夾到Container主機
# 使用scp命令,若是沒有安裝scp,使用
yum install openssh-clients
# 首先須要使用docker exec進入到Container的終端
scp -rp root@192.168.0.35:/home/jetty8/* /home/
#------------------------------------------------------------
# docker容器自動啓動
#------------------------------------------------------------
docker run --restart=always redis
#------------------------------------------------------------
# 掛載數據卷
# 參數
privileged=true:意思給容器添加特權,好比對掛載卷的讀寫
# 掛載多個數據卷,能夠使用屢次-v
#------------------------------------------------------------
# 建立數據卷容器,並掛載目錄
docker run -it --privileged=true -v /home/jetty8:/home/jetty8 --name jetty centos bash
# 使用數據卷容器建立新的數據卷容器
docker run -it --privileged=true --volumes-from jetty --name os centos bash
#------------------------------------------------------------
# 使用Dockerfile製做鏡像
#------------------------------------------------------------
# 注意後面的一點不可少:
.docker build -f dockerfile -t my/centos