docker開發學習

常用命令

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參考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章