安装及使用Docker
安装docker
yum install docker
systemctl enable docker
systemctl start docker
sudo usermod -aG docker cooper
pull镜像
docker run hello-world
docker pull centos
docker pull centos:7.2.1511
images
docker images -a
docker commit … //save container as image
docker commit –author “cooper@foxmail.com” –message “centos7 commit” {cont_name} {img_name}:{tag}
docker build -t nginx:v3 //Read cur dir Dockerfile(FROM,RUN)
docker build - < Dockerfile
cat Dockerfile | docker build -
//save image to file
docker save centos | gzip > centos-latest.tar.gz
docker load -i centos-latest.tar.gz
docker rmi {img_name}
container
docker ps -a
//interactive(stop on exit)
docker run -it centos:latest bash
docker run -it –name “centos0” centos:latest bash
docker run -it –rm centos:latest bash
docker run -it –rm centos:latest /bin/echo ‘Hello world’
//deamon
docker run –name “centos0” -d centos:latest /bin/sh -c “while true; do echo hello world; sleep 1; done”
docker attach centos0
//interactive
docker run –name “centos0” -t centos:latest /sbin/init
docker exec -it centos0 /bin/bash
docker ps
docker logs {cont_name}
docker rm {cont_name}
docker start/stop/restart {cont_name}
docker start -i {cont_name}
docker pause/unpause
//import and export container to file
docker export 7691a814370e > ubuntu.tar
cat ubuntu.tar | docker import - test/ubuntu:v1.0
docker rename centos_old centos_new
/var/lib/docker/
docker run --name "centos0" -t centos:latest /sbin/init
docker exec -it centos0 /bin/bash
docker save centos | gzip > centos-latest-7.3.1611.tar.gz
docker load -i centos-latest-7.3.1611.tar.gz
yum install wget
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/
yum clean all
yum makecache
yum install iproute
yum install openssh-server
systemctl start sshd
passwd root/csg123456
ssh root@192.168.123.2
docker commit --author "yupengqu@tencent.com" --message "centos7 commit" centos0 centos7.3-sshd:v1.0
测试Dockerfile
vi Dockerfile
FROM centos
RUN mkdir /tmp/foo
RUN dd if=/dev/zero of=/tmp/foo/bar bs=1048576 count=100
RUN rm /tmp/foo/bar
RUN rm /tmp/foo
docker build -t centos7.3-sshd:v1.0
host<->guest port mapping
docker -P
docker -p
guest<->guest link
docker –link
data volume
docker run -v
docker run –name “centos0” -t -v /home/docker-CentOS/host_datav:/guest_datav centos:latest /sbin/init
docker inspect centos0
metrics
numactl –hardware
docker run –name “centos0” -c 1024 –cpuset-cpus=0,2,4,6 -m 8g -t centos:latest /sbin/init
echo “512” > /cgroup/cpu/docker/$CONTAINER_ID/cpu.shares
device
docker run –name “centos0” -c 1024 –cpuset-cpus=0,2,4,6 -m 8g –device=/dev/sdg:/dev/sdx -t centos:latest /sbin/init
docker run –name “centos0” -c 1024 –cpuset-cpus=0,2,4,6 -m 8g -v /dev/sdh:/dev/sdx -t centos:latest /sbin/init
add disk device
docker volume create –driver local –name dsdy –opt type=ext4 –opt device=/dev/sdy
docker run –name “centos0” -c 1024 –cpuset-cpus=0,2,4,6 -m 8g -v dsdy:/dev/sdy -t centos:latest /sbin/init
docker volume cmd
docker volume create Create a volume
docker volume inspect Display detailed information on one or more volumes
docker volume ls List volumes
docker volume prune Remove all unused volumes
docker volume rm Remove one or more volumes
安装docker后,缺少docker0网桥,手动创建,才能启动docker
brctl addbr docker0
ip addr add 192.168.123.1/24 dev docker0
ip link set dev docker0 up
ip link set dev docker0 down
ip addr del 192.168.123.1/24 dev docker0
ip addr add 192.168.123.1/24 broadcast + dev docker0
ip link set dev docker0 up
网卡相关操作
yum install bridge-utils
除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器。
在启动 Docker 服务的时候,使用 -b BRIDGE或–bridge=BRIDGE 来指定使用的网桥。
如果服务已经运行,那需要先停止服务,并删除旧的网桥。
sudoservicedockerstop sudo ip link set dev docker0 down
$ sudo brctl delbr docker0
然后创建一个网桥 bridge0。
sudobrctladdbrbridge0 sudo ip addr add 192.168.5.1/24 dev bridge0
$ sudo ip link set dev bridge0 up
查看确认网桥创建并启动。
$ ip addr show bridge0
4: bridge0: