隨便寫的一些docker使用操作命令
阿新 • • 發佈:2020-10-12
#只下載不安裝 yum install --downloadonly --downloaddir=/opt/soft httpd yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce -y systemctl start docker #映象打包 docker save python:3.5 -o /home/python3.5.tar 映象名 #正在執行的容器打包 匯出 docker export 容器ID > /home/python3.5.tar #匯入1 docker load --input aa.tar cat aa.tar |docker import - python:3.5 匯入名字:標籤 #匯入2 docker import python3.5.tar python3.5_env 匯入的名字(自定義命名) #啟動 docker pull python:3.5 docker run -d --name python3.5_env --privileged -it python:3.5 /bin/bash docker exec -it 容器ID /bin/bash #上傳檔案至容器 docker ps -a | grep python3.5_env docker cp 本地檔案 容器ID:/容器內路徑 docker cp /Users/xubowen/Desktop/auto-post-advance.py 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856:/root/auto-post-advance.py #外部執行 docker run -v $PWD:/usr/src/python -w /usr/src/python python:3.5 python test.py # mysql docker pull mysql:5.7 docker run -p 3306:3306 --name my5.7 -e MYSQL_ROOT_PASSWORD=12345678 -d mysql:5.7 docker exec -it my5.7 /bin/bash # db2 docker pull ibmcom/db2 docker run --name db2-test -p 50000:50000 -e DB2INST1_PASSWORD=12345678 -e LICENSE=accept -d ibmcom/db2:latest bash #--------------------------------- # 使用普通使用者執行Docker 1、使用root使用者安裝 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce -y useradd test gpasswd -a test docker ---- 安裝centos並執行 docker run -dit -p --privileged --name=centos7 daocloud.io/centos:7 /usr/sbin/init docker run --name mycentos -p 8888:8080 -p 2222:22 -d -it centos:7 /bin/bash -- 把正在與執行的容器打包為映象 docker commit -a "runoob.com" -m "my apache" 容器名稱或id 打包的映象名稱:標籤 OPTIONS說明: -a :提交的映象作者; -c :使用Dockerfile指令來建立映象; -m :提交時的說明文字; -p :在commit時,將容器暫停。 -- 通過本地檔案匯入映象 cat 映象檔案 | docker import - 映象名:標籤 docker run -tid -p 80:80 -p 2222:22 --privilaged --name centos-2 -v /root/centos7:/ mycentos:7 /usr/sbin/init docker run -name cemtos7 -d -p 22222:22 -v /root/centos7:/ mycentos:7 -- 把正在與執行的容器打包為映象 docker commit -a "runoob.com" -m "my apache" 容器名稱或id 打包的映象名稱:標籤 OPTIONS說明: -a :提交的映象作者; -c :使用Dockerfile指令來建立映象; -m :提交時的說明文字; -p :在commit時,將容器暫停。 -- 把映象匯出為檔案 docker save 映象名:標籤 -o 檔名.tar(路徑) -- 匯入映象 docker load --input 檔名.tar #docker import 檔名.tar 映象名:標籤 -- 執行 docker run --name ww -v /root/centos7:/root/aa -p 13:8080 -p 12:22 -d -it ww:7 /bin/bash docker run --privileged --name ww -v /root/centos7:/root/aa -p 13:8080 -p 12:22 -d -it ww:7 /usr/sbin/init --name 定義容器名稱 -p 對映容器埠 宿主機埠:容器埠 -P: 隨機埠對映 -v 對映容器目錄 宿主機目錄:容器目錄 -d 後臺執行 -h 指定容器hostname --env | -e 設定環境變數 如: pp=`hostname` 在容器中 pp --env-file=[] 從檔案讀取環境變數 # ------ 限制磁碟 ------ 預設沒有限制,容器所在路徑掛載點有多大,磁碟空間就會有多大。 --storage-opt size=20g (需開啟xfs的pquota。) quota 相關的配置都是 0 也就是default,(rw,relatime,seclabel,attr2,inode64,noquota) #===== 限制記憶體及swap ================= -m或--memory:設定記憶體的使用限額,例如 100M, 2G。 預設沒有限制 為 -1 --memory-swap:設定記憶體+swap的使用限額 ,預設沒有限制 為 -1 --memory="300m" --memory-swap="1g" 的含義為: 容器可以使用 300M 的實體記憶體,並且可以使用 700M(1G -300M) 的 swap。--memory-swap 居然是容器可以使用的實體記憶體和可以使用的 swap 之和! #====== cpu限制 =================== --cpus=2 限制使用核心數 --cpuset-cpus="1" 指定那個核心上執行 --cpuset="0-2" or --cpuset="0,1,2": 繫結容器到指定CPU執行; --volume , -v: 繫結一個卷 # 檢視容器的所有資訊 docker inspect 容器名/容器ID # docker下檢視執行中的容器位置 #預設位置 /var/lib/docker/ #----- 修改 images名稱 docker tag 要修改映象ID 新映象名:新標籤 方法一軟連線 # 其它命令 docker logs 獲取container的日誌 docker exec -it 容器名 env 獲取容器環境變數, (執行容器內的 env命令) docker kill 殺掉一個容器 #------------------------------ Docker環境資訊 — docker [info|version] 容器生命週期管理 — docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause] 容器操作運維 — docker [ps|inspect|top|attach|wait|export|port|rename|stat] 容器rootfs命令 — docker [commit|cp|diff] 映象倉庫 — docker [login|pull|push|search] 本地映象管理 — docker [build|images|rmi|tag|save|import|load] 容器資源管理 — docker [volume|network] 系統日誌資訊 — docker [events|history|logs] #------------------------------ #修改 docker時指定儲存路徑(這種方式修改,會影響原來的doker映象及容器,相當於重新初始化了一個docker服務,修改為原來的路徑,容器就回來 ) vim /usr/lib/systemd/system/docker.service 文字內容:ExecStart=/usr/bin/dockerd下面新增如下內容: --graph=/data/tools/docker 如: ExecStart=/usr/bin/dockerd \ --graph /data/tools/docker 建議cp原來的路徑下所有至 新路徑下 原來預設路徑為: /var/usr/docker systemctl daemon-reload systemctl restart docker #---------------------- 解決 vim 中文亂碼 /etc/vimrc 追加如下: set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8