随便写的一些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