安裝環境linux
centos7.4docker
開始安裝json
下載docker官方yum源centos
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
bash
開始安裝:yum install -y docker-ce
服務器
docker鏡像下載curl
下載命令svn
docker pull xxx
xxx表示鏡像名稱,以下載centos鏡像就是ocker pull centos
url
若是下載速度很慢能夠配置docker下載加速器centos7
vi /etc/docker/daemon.json
加入如下內容:
{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
docker經常使用命令
1.查看本地的鏡像:docker images
2.搜索鏡像,其中xxx是關鍵詞:docker search xxx
3.給鏡像打標籤:docker tag centos test123:222333
4.鏡像啓動爲容器,-i表示讓容器的標準輸入打開,-t表示分配一個僞終端,-d表示後臺啓動,要把-i -t -d 放到鏡像名字前面:docker run -itd centos
5.查看docker啓動中的容器,加上-a選項後能夠查看全部容器,包括未運行的:docker ps
6.用來刪除指定鏡像,其中後面的參數能夠是tag,若是是tag時,其實是刪除該tag。當後面的參數爲鏡像ID時,則會完全刪除整個鏡像,全部標籤也會一同刪除:docker rmi xxx
進入容器
docker exec -it xxxxx bash
是進入容器的命令,其中xxxxx爲容器id,這個id能夠用docker ps查看,最後面的bash爲進入容器後咱們要執行的命令
在容器內安裝net-tools
在容器內執行:yum install -y net-tools
提交新鏡像
docker commit -m "change somth" -a "somebody info" container_id new_image_name
參數說明:container_id經過docker ps -a獲取,後面的new_image_name爲新鏡像名字
示例:
docker commit -m "install net-tools" -a "wxy" 82d0ec485063 centos_net-tolls
這個命令有點像svn的提交,-m 加一些改動信息,-a 指定做者相關信息,82d0ec這一串爲容器id,再後面爲新鏡像的名字
提交完成後,使用docker image查看:
下載一個模板
wget http://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz
導入該鏡像
cat centos-6-x86-minimal.tar.gz |docker import - centos6
以現有的鏡像導出一個文件
docker save -o centos_net-tolls.tar centos_net-tolls
把原有的進行刪除,把導出的鏡像導入進去
docker images
獲取鏡像id
docker rmi acaf23cc3076
重啓導入鏡像
docker load --input centos_net-tolls.tar
或者docker load < centos_net-tolls.tar
也能夠
啓動容器
建立一個容器,可是不啓動: docker create -it centos6 /bin/bash
啓動容器:docker start 30034995f99a
啓動完成後能夠docker ps查看
可使用docker run來進行啓動,它至關於先create後再start容器
docker run -it centos6 /bin/bash
docker -d
可讓容器在後臺運行,如:
docker run -itd centos6 /bin/bash
啓動容器時給容器自定義名稱
docker run -itd --name "centos_1" centos6 /bin/bash
容器退出後直接刪除
可讓docker容器運行一個命令後退出並刪除容器,如讓一個容器運行sleep 30,等待30秒後容器會中止並刪除。
docker run --rm -itd centos /bin/bash -c "sleep 30"
docker容器log查看
啓動容器,並運行一個命令
docker run -itd 80d356edba18 bash -c "echo 123"
使用docker logs查看
docker logs 3d995b4d
臨時docker打開虛擬終端
使用docker exec 能夠打開容器的臨時終端,exit後容器仍是正常運行
docker exec -it f3381b9c3b2e /bin/bash
docker attach container_id 這種方式也可打開終端,可是exit後容器就中斷了,因此這種方式通常不用
刪除容器
docker rm container_id 能夠刪除容器,container_id是ps的時候查看到的,這樣就能夠把container刪除,若是是運行的容器,能夠加-f
docker rm -f f3381b9c3b2e
導出容器
docker export container_id > file.tar 這樣能夠導入容器,生成一個文件。能夠遷移到別的機器進行導入
docker export 831cf59980c4 > wxy_test.tar
導入容器
cat file.tar |docker import - wxy_test 這樣會生成新的鏡像
cat centos-6-x86-minimal.tar.gz |docker import - wxy_test
下載registry鏡像
registy爲docker官方提供的一個鏡像,咱們能夠用它來建立本地的docker私有倉庫。
docker pull registry
啓動registry鏡像
docker run -d -p 5000:5000 registry
啓動registry鏡像,-p的意思是把容器端口映射到宿主機上,左邊爲宿主機端口,右邊爲容器監聽端口
訪問registry
curl 127.0.0.1:5000/v2/_catalog
把鏡像上傳到私有倉庫
首先給私有倉庫tag一下,tag必需要有私有倉庫的ip:port
docker tag wxy_test 172.18.11.153:5000/centos
修改配置文件
vi /etc/docker/daemon.json
改成如下內容:
{ "insecure-registries":["172.18.11.153:5000"] }
完成後重啓docker
systemctl restart docker
`
啓動容器
docker start 64584c4300f1
進行push
docker push 172.18.11.153:5000/centos
查看推送的鏡像
curl 127.0.0.1:5000/v2/_catalog
在其餘機器上下載剛上傳的鏡像
在其它安裝docker的服務器上修改配置文件
/etc/docker/daemon.json
修改如下內容:
{ "insecure-registries":["47.106.84.56:5000"] }
ip爲以前上傳鏡像的registry的服務器ip,這裏跟以前的ip不同是由於用了雲服務器。
修改完成後重啓docker,而後進行pull
docker pull 47.106.84.56:5000/centos