[TOC]
rpm文件安装
#删除旧版本
yum remove docker docker-common container-selinux docker-selinux docker-engine docker-engine-selinux
#下载文件
https://mirrors.tuna.tsinghua.edu.cn/centos/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.06.1.ce-1.el7.centos.x86_64.rpm
#安装
yum install docker-ce-selinux-* -y
yum install docker-ce-* -y
启动
systemctl start docker
docker pull registry.aliyuncs.com/acs-sample/centos
docker pull registry.cn-hangzhou.aliyuncs.com/acs/centos
docker images
docker run -i -t --name=centos10 registry.aliyuncs.com/acs-sample/centos /bin/bash
docker命令
# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
#列出最近一次启动的,且正在运行的container
docker ps -l
#port命令
docker run -p 80:8080 <image> <cmd> #映射容器的8080端口到宿主机的80端口
#查看container的实例属性,比如ip等等
docker inspect $CONTAINER_ID
# 退出容器
按Ctrl+D 即可退出当前容器【但退出后会停止容器】
# 退出不停止容器:
组合键:Ctrl+P+Q
# 启动容器
docker start 容器名或ID
# 进入容器
docker exec -it [docker_id/docker_name] /bin/bash
# 查看容器地址
docker inspect -f '{{ .NetworkSettings.IPAddress }}' [docker_id/docker_name]
#查看本地镜像
docker images
# 停止容器
docker start 容器名或ID
# 删除全部容器--慎用
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
#查看docker实例运行日志,确保正常运行
docker logs $CONTAINER_ID
#保存容器,生成镜像
docker commit 容器ID 镜像名称
docker配置
限制容器资源
# CPU使用0-3总共4个核心,内存1G ,--net=none不配置网络(桥接模式是pipework设置网络)
docker run -itd --net=none --name=centos07 --cpuset-cpus="0-3" -m 1024M --memory-reservation 1024M centos6-132.97.8.7-170106_2 /bin/bash
设置存储大小
# ubuntu在/etc/default/docker
# centos在/etc/sysconfig/docker-storage
cat /etc/sysconfig/docker-storage
DOCKER_STORAGE_OPTIONS="--storage-opt dm.loopdatasize=2000G --storage-opt dm.loopmetadatasize=10G --storage-opt dm.fs=ext4 --storage-opt dm.basesize=20G"
#dm.loopdatasize=2000G是指存放数据的数据库空间为2t,默认是100g
#dm.loopmetadatasize=10G是存放Metadata数据空间为10g,默认是2g
#dm.fs=ext4是指容器磁盘分区为ext4
#dm.basesize=20G是指容器根分区默认为20g,默认是10g
docker桥接模式
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0
vi ifcfg-eth0
//改成这样
DEVICE=eth0
HWADDR=00:0C:29:06:A2:35
TYPE=Ethernet
UUID=34b706cc-aa46-4be3-91fc-d1f48c301f23
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=yes
BOOTPROTO=static
vi ifcfg-br0
//改成这样
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.216.131
NETMASK=255.255.255.0
GATEWAY=192.168.216.2
DNS=8.8.8.8
设置启动参数
# centos 在/etc/sysconfig/docker
# 其他操作系统请前往下面的网址
# https://docs.docker.com/installation/#installation
vi /etc/sysconfig/docker #在OPTIONS='--selinux-enabled'这行中修改为OPTIONS='--selinux-enabled -b=br0'即让docker服务启动时使用br0网卡进行桥接
安装pipework
git clone https://github.com/jpetazzo/pipework
cp ~/pipework/pipework /usr/local/bin/
使用pipework设置IP
pipework br0 centos06 132.97.8.6/24@132.97.8.1
进去docker查看IP
docker attach centos06
ifconfig
service sshd restart #重启ssh
启动手动设置网络的容器
docker run -itd --net=none --name=centos06 --cpuset-cpus="0-3" -m 1024M --memory-reservation 1024M ssh-centos6 /bin/bash
docker开机启动脚本
#! /bin/bash
# chkconfig: 2345 10 90
# description: docker
service docker start
docker start centos06
docker start centos07
pipework br0 centos06 132.97.8.6/24@132.97.8.1
pipework br0 centos07 132.97.8.7/24@132.97.8.1
docker exec -i centos06 service sshd restart
docker exec -i centos07 service sshd restart
docker CE安装
# Step 1: 写入软件源地址
sudo sh -c 'echo "http://mirrors.aliyun.com/docker-ce/linux/centos" > /etc/yum/vars/dockerurl'
# step 2: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 3: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 4: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 5: 开启Docker服务
sudo service docker start
Dockerfile
#FROM必须是第一行,指明要基于哪个镜像进行构建
FROM daocloud.io/centos:7
#多行标签
LABEL com.example.version="0.0.1"\ com.example.release-date="2017-05-25"
#将同Dockerfile文件目录下的文件拷贝到镜像的指定目录下
COPY shm.jar /usr/local/
COPY jdk1.8 /usr/local/
#设置镜像的环境变量
ENV JAVA_HOME=/usr/local/jdk1.8
ENV PATH=$JAVA_HOME/bin:$PATH
#指定容器被运行时,自动执行的命令,方便服务镜像的使用
CMD /usr/bin/touch /usr/local/shm.log &&\
java -jar /usr/local/shm.jar &> /usr/local/shm.log &
#曝光运行该镜像容器的端口
EXPOSE 9090
构建镜像
# 注意最后的 . 这个点指定Dockerfile所在的当前目录
docker build -t image_name:tag .
运行镜像
docker run -idt --name container_name -p port:port image_name:tag shell
docker run -idt --name mysql -p 3306:3306 local/mysql:1.0 /bin/bash
Comments