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
将用户加入到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 那一行解开注释
安装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