1. 程式人生 > 實用技巧 >隨便寫的一些docker使用操作命令

隨便寫的一些docker使用操作命令

#只下載不安裝
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