常用命令
Docker 阿里雲加速https://cr.console.aliyun.com/#/accelerator
docker images 查看運行的鏡像
docker build -t 鏡像名 路徑 構建鏡像
docker rmi 刪除鏡像
docker run --name redislll redis 運行一個新的容器(--name 自定義容器名字)
docker run -i -t IMAGE /bin/bash 啓動交互式容器(-i 爲容器啓動一個交互式的守護進程,
-t 爲容器創建個僞終端
-m 設置容器佔用內存大小(x2)
-d 後臺運行容器)
docker info 查看docker系統信息
docker ps 查看運行容器 -a 查看全部運行容器包括停止的
docker start 啓動容器
docker stop 停止容器
docker kill 殺死容器
docker rm 刪除命令
docker save busybox -1 > /home/save.tar
docker load < /home/save.tar 把一臺機器上的鏡像遷移到另一臺機器的時候
需要保存鏡像與加載鏡像
docker cp ce58426c830c:/etc/debian . 從容器中拷貝文件出來
docker pull docker.io/mysql:latest 拉取鏡像
docker inspect 查看容器也可查看鏡像
exit 退出容器並關閉
ctrl + p ctrl + q 退出交互式容器(退出來但不關閉容器)
docker attach 進入交互式容器
docker logs 查看日誌(-f 日誌實施查看
-t 日誌顯示時間戳
-tall 顯示日誌條數)
docker logs -f -t --since='2017-09-04' --tail=10 tomcat_java
docker top 查看運行中進程
docker exec 在運行中的容器啓動新的進程(-i 爲容器啓動一個交互式的守護進程,
-t 爲容器創建個僞終端
-d 後臺運行容器
docker exit -it tomcat /bin/bash 進入容器裏面tomcat)
docker port 查看端口映射
docker commit -a ‘guanheng’ -m ‘aaa’ commit_test local/commit_test1 創建鏡像(
-a 作者信息
-m 鏡像信息
commit_test 容器名稱
local 倉庫名稱
commit_test1 鏡像名稱)
docker run --volumes-from [CONTAINER NAME] 掛載數據卷容器(NAME已經掛載數據卷的容器)//多個容器共享數據
docker run -volumes-from [container name] -v $(pwd):/backup ubuntu tar xvf/backup.tar [
container data volume] 備份數據卷
docker build -t guanheng:myimage . 通過Dockerfile文件生成鏡像
docker login 登錄dockerHub
--link container:alias 容器之間的訪問通過別名
Dockerfile 指令
# 註釋
FROM imget:tag 原鏡像
MAINTAINER name 指定作者信息
RUN 指定當前鏡像中的命令
RUN <command> shell模式
RUN [“executable”,”param1”,”param2”] exec模式
EXPOST <port> 指定運行該鏡像的容器的使用端口
CMD [“executable”,”param1”,”param2”] exec模式
CMD command param1 param2 shell
CMD[”param1”,”param2”](作爲ENTRYPOINT指令的默認參數) 提供容器的默認命令
ENTRYPOINT [“executable”,”param1”,”param2”] exec模式
ENTRYPOINT command param1 param2 shell 不會被run中的命令覆蓋
ADD <src> <dest> (ADD適用於tar解壓縮)
ADD[“<src>”,”<dest>”] (適用於文件路徑中有空格)
COPY <src> <dest>
COPY[“<src>”,”<dest>”] 把文件複製到docker創建的鏡像中
VOLUME [“/data”] 向鏡像容器添加捲
WORKDIR /path/to/workdir 設置工作目錄
ENV <key> <value>
ENV <key>=<value> 設置環境變量
USER deamon設置鏡像運行用戶
ONBUILD [INSTRUCTION] 鏡像觸發器(當一個鏡像被其他鏡像作爲基礎鏡像是執行)
test1 docker執行命令
mysql run:
docker run -it -p 13306:3306 -v /root/bbb/docker-entrypoint.sh:/docker-entrypoint.sh -e MYSQL_ROOT_PASSWORD=hello_123 --name dk_mysql1 mysql
tomcat run:
docker run -it --rm -p 38080:8080 \
-v /opt/java/webapps:/usr/local/tomcat/webapps \
-v /opt/java/tomcat-logs:/usr/local/tomcat/logs \
-v /opt/java/webapp-conf:/root/webapp-conf \
-v /opt/java/webapp-logs:/root/webapp-logs \
--name tocmat_java \
tomcat
docker compose Yaml文件
image:鏡像的IDbuild:直接從pwd的Dockerfile來build,而非通過image選項來pulllinks:連接到那些容器。每個佔一行,格式爲SERVICE[:ALIAS],例如 – db[:database]external_links:連接到該compose.yaml文件之外的容器中,比如是提供共享或者通用服務的容器服務。格式同linkscommand:替換默認的command命令
ports: 導出端口。
expose:導出端口,但不映射到宿主機的端口上。它僅對links的容器開放。格式直接指定端口號即可。volumes:加載路徑作爲卷,可以指定只讀模式
volumes_from:加載其他容器或者服務的所有卷
env_file:從一個文件中導入環境變量,文件的格式爲RACK_ENV=developmentextends:擴展另一個服務,可以覆蓋其中的一些選項。
net:容器的網絡模式,可以爲”bridge”, “none”, “container:[name or id]”, “host”中的一個。dns:可以設置一個或多個自定義的DNS地址。dns_search:可以設置一個或多個DNS的掃描域。其他的working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares,和docker run命令是一樣的,這些命令都是單行的命令。
示例:
docker-compose常用命令
--verbose:輸出詳細信息-f 制定一個非docker-compose.yml命名的yaml文件-p 設置一個項目名稱(默認是directory名)docker-compose的動作包括:build:構建服務kill -s SIGINT:給服務發送特定的信號。logs:輸出日誌port:輸出綁定的端口ps:輸出運行的容器pull:pull服務的imagerm:刪除停止的容器run: 運行某個服務,例如docker-compose run web python manage.py shellstart:運行某個服務中存在的容器。stop:停止某個服務中存在的容器。up:create + run + attach容器到服務。scale:設置服務運行的容器數量。例如:docker-compose scale web=2 worker=3參考: