linux【Centos7】 部署docker环境

镜像是什么

  • window iso安装包
容器是什么
  • 安装包安装之后自成一个系统
安装指定版本的docker
# 卸载老版本
yum remove docker docker-common container-selinux docker-selinux docker-engine
# 添加软件源:阿里
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新索引
yum makecache fast
# 查看版本
yum list docker-ce --showduplicates | sort -r
# 安装指定版本 VSESION=17.03.0.ce.1-1.el7.centos
sudo yum -y install docker-ce-VERSION
例如:sudo yum -y install docker-ce-19.03.5-3.el7
# 安装最新版
sudo yum -y install docker-ce
# 开机自启动
sudo systemctl enable docker
sudo systemctl start docker
网络及资源管理命令
列出所有 Docker 资源、输入以下命令以显示资源:
docker container ls
docker image ls
docker volume ls
docker network ls
docker info

显示所有现有 Docker 网络的列表
docker network ls
删除某个网络
docker network rm [networkID]
注意:需要先删除正在使用网络的容器,然后才能删除网络

停止并删除容器命令如下
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

该prune命令会自动删除与容器无关的所有资源。这是一种清理未使用的镜像、容器、卷和网络的简化方法。
在终端窗口中,输入以下内容:
docker system prune

镜像操作详见下文
常用命令
# 启动,重启,停止,状态
service docker start|restart|stop|status
# 拉取|下载 镜像|安装包
docker pull nginx
docker pull 9cpn8tt6.mirror.aliyuncs.com/nginx
# 启动
# 启动nginx 目录映射方式
镜像的操作
# 查看镜像
docker images
# 删除镜像
docker rmi id|name
# 强行删除镜像
docker rmi -f id|name
# 导出镜像
docker save -o name id|name
# 加载本地镜像
docker load -i 镜像文件
# 修改镜像名称(加载后的镜像文件名称为null 需要修改镜像名称和版本)
docker tag 镜像id 新镜像名称:版本
容器的操作
# 运行容器
docker run  --name nginx -p 80:80 -d \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/logs:/var/log/nginx \
--link php-fpm:php \
nginx
# 查看运行中的容器
docker ps
# 查看所有,包括未运行的
docker ps -a
# 查看容器的标识,仅仅的运行的
docker ps -q
# 查看日志
docker logs id|name
# 进入容器 大多是bash,aipline用sh
docker exec -it 容器id bash|sh
# 退出
exit
# 启动 停止 删除
docker start|stop id|name
docker rm id|name
bug
# 需要重建网卡
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-2d8506956a5b -j RETURN: iptables: No chain/target/match by that name.
# 重建命令
pkill docker 
iptables -t nat -F 
ifconfig docker0 down 
brctl delbr docker0 
service docker restart
docker-compose安装
# 下载快速的地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 将文件copy到 /usr/bin/目录下
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 查看版本
docker-compose --version
docker-compose.yml
version: '3'

services:
 mysql:
   container_name: "game-mysql"
   image: daocloud.io/mysql:5.7
   ports:
      - "3306:3306"
   volumes:
      - ./docker/mysql/logs:/logs/:rw
      - ./docker/mysql/data:/var/lib/mysql/:rw
   environment:
     MYSQL_ROOT_PASSWORD: root
     MYSQL_DATABASE: game
    restart: always
   networks:
      - game-net

 web:
   container_name: "game-golang"
   build:
     context: ./
   ports:
      - "80:80"
   volumes:
      - ./conf:/root/conf
   networks:
      - game-net

networks:
 game-net:
   external: true
Dockerfile
FROM golang:1.15-alpine AS builder
# 如果有需要使用apk的命令,就用下面这个下载
#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
ENV GO111MODULE=on \
    GOPROXY="https://goproxy.cn"
WORKDIR /go/src/game
COPY . .
RUN go mod tidy \
   && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main main.go

FROM alpine:latest
WORKDIR /root/
COPY --from=builder /go/src/game/main .
EXPOSE 80
ENTRYPOINT ["./main"]
docker-compose常用命令
# 构建,并后台启动
docker-compose up -d
# 重启 停止 启动
docker-compose restart|stop|start
# 进入容器
docker-compose exec name bash|sh
# 删除全部
docker-compose down
# 查看 name的日志
docker-compose logs name
# 实时查看name的日志
docker-compose logs -f name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉言心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值