Centos && Ubuntu在线部署docker及docker-compost

下载docker 一键安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

问题:

Linux可以ping通外网ip地址,但是无法ping通域名

解决办法:

修改/etc/resolv.conf文件,添加以下两个DNS
nameserver 8.8.8.8
nameserver 8.8.4.4
image

将用户加入到docker用户组

usermod -aG docker root

启动docker

systemctl start docker

查看docker容器

docker ps

在线下载docker-compose

或者上传离线的docker-compse文件

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/sbin/docker-compose

需要注意后面的路径地址 /usr/local/bin,必须是用户的binbash目录,不然,不能直接执行docker-compose文件

输入命令查看

[root@data-center-dev sbin]# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin

如果是上传的离线的compose文件,需要将文件手动移入binbash目录

sudo cp docker-compose-Linux-x86_64.1.21.2 /usr/sbin/docker-compose

将compose文件修改问可执行文件

chmod +x /usr/sbin/docker-compose

查看版本号

[root@api-center-qa ops]# docker-compose -version
docker-compose version 1.21.2, build a133471

相关可能用到的命令

查看日志
docker-compose logs -f
查看镜像
docker images

删除镜像

docker rmi image_id或者镜像REPOSITORY
如果有多个相同的image_id 删除时可能会报错,相同的image_id 说明多个实例指向的是同一个镜像

删除容器

docker ps -a 查询已有的实例
删除已经停止运行的实例。如果没有停止,使用docker stop ID/NAMES停止实例,或者使用docker rm -f 容器ID或者容器名强制删除。
docker rm 容器ID或者容器名
再次使用docker ps -a查询已有的实例 发现已经被删除
docker rm -f docker ps -a -q # 强制删除所有容器
docker rmi -f docker images -q # 强制删除所有的镜像

Ubuntu 系统安装docker和docker-compose

准备好ubuntu系统
可选
修改软件源
cd /etc/apt
cp sources.list sources.list.back
vi sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

更新软件
apt-get update
ping www.baidu.com 测试网络是否可用
如果报错
Temporary failure in name resolution
编辑 /etc/systemd/resolved.conf 这个文件,把 DNS 那一行解开注释
image

安装docker

阿里解决方案 安装docker-engine

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

安装GPG证书

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

写入软件源信息

sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

更新并安装 Docker-CE

sudo apt-get -y update
sudo apt-get -y install docker-ce

将用户加入允许执行docker组

sudo usermod -aG docker root

查看docker容器

dockers ps

安装docker-compose

在线下载docker-compose

或者上传离线的docker-compse文件

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/sbin/docker-compose

需要注意后面的路径地址 /usr/local/bin,必须是用户的binbash目录,不然,不能直接执行docker-compose文件

输入命令查看

[root@data-center-dev sbin]# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin

如果是上传的离线的compose文件,需要将文件手动移入binbash目录

sudo cp docker-compose-Linux-x86_64.1.21.2 /usr/sbin/docker-compose

将compose文件修改问可执行文件

chmod +x /usr/sbin/docker-compose

查看版本号

[root@api-center-qa ops]# docker-compose -version
docker-compose version 1.21.2, build a133471

docker-compose.yml文件样例

以docker启动jar包为样例

version: "3"
services:
  gateway-service:
    # 指定容器名称
    container_name: gateway
    # 重启机制
    restart: always
    image: java:8 # 使用的镜像,如果没有会从远程pull
    volumes:
      # 本地jar包路径
      - /root/app/gateway/kunzhi-gateway.jar:/root/app/gateway/kunzhi-gateway.jar
      # 本地脚本路径
      - /root/app/gateway/kunzhi-gateway.sh:/root/app/gateway/kunzhi-gateway.sh
      # 挂载日志 -v A:B ,A指宿主机位置,B指容器位置
      - ./logs:/logs
      # 指定容器时间为宿主机时间 ro 表示readonly,ro也可以不指定
      - /etc/localtime:/etc/localtime:ro
    # 访问端口
    ports:
      - "8089:8089"
    environment:
      # 指定时区,不指定,有可能会导致宿主机和容器内部时间差8小时
      TZ: Asia/Shanghai
    #启动容器后执行的命令
    entrypoint: sh /root/app/gateway/kunzhi-gateway.sh

posted @ 2021-04-06 13:20  darling331  阅读(207)  评论(0编辑  收藏  举报