最近使用docker裝在多台機器上安裝clickhouse集群,學習一下docker的基礎操作
容器基本操作
1 查看docker信息 sudo docker info
2 運行容器 sudo docker run -i -t ubuntu /bin/bash
3 在容器中可以安裝軟件和我們外面的linux機器一樣,只是不一樣的ubuntu和centos命令不一樣
4 列出容器 sudo docker ps -a (-a 包括沒有運行的)
5 啟動容器的時候可以給容器命名 sudo docker run --name firstContainername -i -t ubuntu /bin/bash
6 停止容器 sudo docker stop firstContainername (restart)
7 附着進入容器 sudo docker attach firstContainername
8 后台運行容器 sudo docker run -d -i -t ubuntu /bin/bash
9 獲取容器日志 sudo docker logs firstContainername
10 持續跟蹤容器日志 sudo docker logs -f firstContainername
11 持續跟蹤容器日志,並打印時間 sudo docker logs -ft firstContainername
12 可以將日志重定向到宿主機,也有一些日期驅動 sudo docker run --logs-driver="syslog" --name firstContainername -d 使用syslog的日志驅動,關於日志驅動百度
13 查看容器內的進程 sudo docker to firstContainername
14 統計容器的內存,網絡,cpu,io等的指標 sudo docker stats firstContainername
15 在后台運行的容器內執行命令 sudo docker exec -d firstContainername touch /etc/new_config_file
16 進入容器 sudo docker exec -it firstContainername /bin/bash
17 停止容易 sudo docker stop firstContainername
18 自動重啟 sudo docker run --restart=always --name firstContainername -d ubuntu /bin/sh
--restart=always 無論什么情況停止都會重啟,還可以加參數 --restart=on-failure:5 退出代碼為非0時重啟5次
19 獲取容器信息 sudo docker inspect firstContainername
20 刪除容器 sudo docker rm firstContainername
21 刪除所有容器 sudo docker rm `sudo docker ps -a -q` -a返回所有容器 -q只返回容器的id
鏡像
1 列出所有鏡像 sudo docker images
2 拉取鏡像 sudo docker pull ubuntu 可以指定版本號,不指定為默認最新的鏡像
3 查找鏡像 sudo docker search ubuntu
4 注冊docker賬號后就可以使用 docker login命令進行登錄
5 可以拉取一個centos鏡像 sudo docker pull centos 然后運行 sudo docker run -it --name centosContener centos /bin/bash 進入容器安裝vim yum -y install vim 退出容器 exit 提交容器 sudo docker commit -m"信息" -a "作者" centosContener 鏡像用戶名/倉庫名:標簽
6 查看鏡像的信息 sudo docker inspect 鏡像用戶名/倉庫名:標簽
7 Dockerfile
FROM centos
RUN yum -y install nginx
EXPOSE 80
sudo docker build -t="鏡像用戶名/倉庫名:標簽"
8 構建鏡像時禁用緩存 sudo docker build --no-cache -t="鏡像用戶名/倉庫名:標簽"
9 查看docker鏡像的構建歷史 sudo docker history centos 實例 sudo docker history zhaoqinrong/centos:test
10 查看容器端口的映射情況 sudo docker port centosContener 80 會返回映射到宿主機上的端口
11 端口綁定 sudo docker run --name firstContainername -p 80 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p 8080:80 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p 127.0.0.1:8080:80 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p 映射ip:映射到宿主機的端口:容器端口 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p -d zhaoqinrong/centos 將構建鏡像中的dockerfile文件中的EXPOSE的所有端口公開,並隨機綁定到宿主機的端口上
12 Dockerfile 中的CMD命令,RUN命令是在構建中,docker容器未啟動時作用,而CMD是在啟動后執行的命令
CMD["/bin/bash","-l"]
docker網絡
1 創建一個docker網絡 sudo docker network create app
2 sudo docker network inspect app 查看新建網絡的信息,包含這個網絡中的所有容器
3 查看當前系統中的所有網絡 sudo docker network ls
4 在新創建的app網絡中創建容器 sudo docker run -d --net=app --name db zhaoqinrong/centos
5 將已有容器添加到app網絡 sudo docker network connect app db2
6 退出app網絡 sudo docker network disconnect app db2
還可以學習一下docker-compose和swarm
感覺docker很強大