curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
yum install -y docker-ce
docker -v
systemctl start docker
systemctl enable docker
docker search centos
docker pull centos
docker images
docker rmi images
docker rm -f [container id]
更换源
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
systemctl daemon-reload
systemctl restart docker
创建容器
docker run --name genew -itd centos bash 让容器便准输入打开,分配一个伪终端,后台启动
docker ps 查看所有容器包括停止的
docker exec -it [container id] bash
docker tag centos genew_centos
docker tag centos genew_centos:genewtag
docker stop [container id]
docker logs [container id]
创建新的某状态镜像
docker commit -m 'install net-tools' -a 'genew' [container id] genew_new_os (-m 备注信息,-a 作者信息)
导出镜像
docker export -o export_os.tar [container id]
导入镜像
docker import export_os.tar genew_centos bash
仓库管理
docker pull registry
docker run -d -p 5000:5000 registry
curl 127.0.0.1:5000/v2/_catalog
标记tag,必须带有私有仓库的ip:port
docker tag [images name] 10.8.1.126:5000/centos_repo
添加私有仓库到配置文件
vi /etc/docker/daemon.json
{
"insecure-registries": ["10.8.1.126:5000"]
}
重启Docker服务
systemctl daemon-reload
systemctl restart docker
重新启动相关容器后,推送镜像到私有仓库
docker push 10.8.1.126:5000/centos_repo
其他设备可以使用如下方式去获取仓库中的镜像
docker pull 10.8.1.126:5000/centos_repo
数据管理
在创建容器时,添加参数 -v 用于指定挂载目录,实现本地目录与容器之间的映射
docker run --name genew -itd -v /genew_data:/data centos bash
创建数据卷容器(实现将其他容器的内容同时共享给另外一些容器使用,同时与宿主机互通)
docker run --name new_genew -itd --volumes-from genew bash
网络模式
1.bridge模式映射
获取httpd服务
docker pull httpd
将宿主机进行端口映射
docker run -itd -p 8081:80 httpd bash
进入容器启动服务
docker exec -it [container id] bash
启动httpd
httpd -k start
其他设备上测试
curl 172.17.0.2 或 http://10.8.1.127:8081
2.host模式,与宿主机使用同一套的网络
docker run -itd --net=host [images name] bash
docker exec -it [container id] bash
httpd -k start
3.container模式,使多个容器使用相同的网络
docker run -itd --net=container:[container id] [images name] bash
docker exec -it [container id] bash
4.无网络模式
docker run -itd --net=none [images name] bash
docker exec -it [container id] bash
要想让无网络方式的实现网络访问
1.将宿主机的设备配置成桥接接口
2.下载pipework的工具,下载pipework,解压后将pipework文件夹复制到/usr/local/bin路径中
3.为容器分配网络地址,在宿主机上进行配置
pipework br0 [container id] 10.8.1.128/24@10.8.1.254
4.查看容器内的网络,注意,容器停止后就会网络失效,需要重新配置
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
修改执行权限
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
运行
docker-compose -f docker-compose.yaml up -d (指定目录,在后台启动)