Docker安装(CentOS)
下载yum源:
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
查看下载内容:
cat !$
yum list |grep docker
- 官方安装手册(CE版)
- https://docs.docker.com/install/linux/docker-ce/centos/
sudo yum install docker-ce #安装docker-ce
sudo systemctl start docker #启动docker
sudo docker version #查看docker版本
sudo docker run hello-world #下载hello-world容器并运行测试
若docker下载慢
yum install -y docker-ce
速度慢比较慢,可以直接下载rpm包
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
下载完,上传到Linux上
也需要用yum安装,可以自动解决依赖关系
yum install -y docker-ce-xxx.rpm
systemctl start docker 启动docker
Docker Image
- Docker Hub官网
- https://hub.docker.com/explore/
docker pull centos #下载镜像
docker image ls = docker images#查看镜像
docker images rm XXX =docker rmi XXX #删除镜像
Docker Container
docker run XXX #创建容器
docker container ls -a =docker ps -a #查看容器
docker container ls -aq = docker container ls -a | awk {'print$1'} #查看容器ID
docker container rm XXX = docker rm XXX #删除容器
docker rm $(docker container ls -aq) #删除所有容器
docker rm $(docker container ls -f "status=exited" -q) #删除已退出的容器
构建自己的Docker镜像
docker container commit =docker commit #封装新的image
docker image build =docker build #Bulid an image from a Dockfile
docker history 15b3b077c2a4 #查看image分层
docker commit keen_allen yard/centos-vim #封装新的镜像
mkdir docker-centos-vim cd docker-centos-vim vim Dockerfile
FROM centos
RUM yum install -y vim
more Dockerfile docker build -t yard/centos-vim-new . #以后只用给别人一个Dockerfile文件就可以搭建和自己一模一样的环境
Dockerfile
- https://docs.docker.com/engine/reference/builder/#usage
压力测试
docker run -it ubuntu
apt-get undate && apt-get install -y stress
which stress #查看路径
stress --help
stress --vm 1 #启动一个worker
stress --vm 1 --verbose #dbug输出
stress --vm-bytes 50000M --vebose #会超出内存限制
exit
top #查看宿主机内存
vim Dockerfile
---
FROM ubuntu
RUN apt-get update && apt-get install -y stress
ENTRYPOINT ["/usr/bin/stress"] #可执行程序+可选的参数
CMD []
---
docker run yard/ubuntu-stress --vm 1 --verbose
more Dockerfile
docker run --help
容器操作
docker ps #查看docker进程
docker run -d yard/flask-hello-world #在后台执行
docker exec -it ID /bin/bash #交互式执行进入(运行中容器)
ps -ef | grep python #查看python进程
docker exec -it ID python #进入到python shell里
docker exec -it ID ip a #打印出运行中容器IP地址
docker stop ID #停止运行中的容器
docker ps -a #列出所有的容器,包括未运行的
docker rm $(docker ps -aq) #删除退出的容器
docker run -d --name=demo yard/hello-world #创建一个名字为demo的容器
docker stop demo #删除demo容器
docker strat demo #启动demo容器
docker inspect ID #查看容器详细信息
docker logs ID #查看容器运行的信息
官方文档Docker container https://docs.docker.com/engine/reference/commandline/container/
容器的资源限制
docker run --help #查看参数
docker run --memory=200M yard/ubuntu-stress --vm 1 --verbose --vm-bytes 500M
docker run --cpu-shares=10 --name=test1 yard/ubuntu-stress --cpu 1
docker run --cpu-shares=5 --name=test2 yard/ubuntu-stress --cpu 1
top
LInux网络命名空间(实现容器间网络互通)
sudo docker run -d --name busybox /bin/sh -c "while true;do sleep 3600;done"
sudo docker ps
sudo docker exec -it ID /bin/sh #进入到容器
ip a #显示当前网络接口
sudo ip netns delete test1 #删除
sudo ip netns list #查看
sudo ip netns add test1 #添加
sudo ip netns exec test1 ip a #查看地址
ip link
sudo ip netns exec test1 ip link
sudo ip netns exec test1 ip link set dev lo up
sudo ip link add veth-test1 type veth peer name veth-test2
sudo ip link set veth-test1 netns test1
sudo ip netns exec test1 iplink #查看test1的IP