一、docker 离线安装:
1、下载安装包
Index of linux/static/stable/x86_64/ (docker.com)https://download.docker.com/linux/static/stable/x86_64/2、创建docker目录: 在任意目录创建都行,主要是将docker包进行解压
3、创建系统配置文件
vi /opt/docker/docker.service
docker.service配置内容如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4、创建安装脚本
vi /opt/docker/install.sh
#!/bin/sh
echo '解压tar包...'
tar -xvf $1
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
ps:如果使用sh脚本安装失败,可根据脚本里面的命令进行一步一步安装;也就是不通过脚本进行安装,这样只不过麻烦一点,但是也是挺快的
5、创建卸载脚本
vi /opt/docker/uninstall.sh
#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
6、安装
sh install.sh docker-xxxx.tgz
7、查看docker状态
##查看状态
systemctl status docker
##查看版本号
docker version
docker与docker-compose 版本选择
Compose file versions and upgrading | Docker Documentation
二、docker-compose安装
1、下载安装包
Tags · docker/compose · GitHub
2、将下载好的安装包上传至服务器
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
docker-compose-linux-x86_64注意:这个是个文件,下载之后,上传服务器,拖到文件夹里面,给予权限即可,第一次安装这个一直以为是个安装包,纳闷了好久 ;
4、添加可执行的权限
chmod +x /usr/local/bin/docker-compose
docker-compose: 适合用于定义和
5、验证是否安装成功
docker-compose -v
docker compose.yml
1、images: 指向镜像,
image: mysql:8.0.30
2、ports: 端口,将容器内部端口映射到宿主机上
ports:
- "3310:3306"
3、restart :容器重启策略
restart: always
no,默认策略,在容器退出时不重启容器
on-failure,在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3,在容器非正常退出时重启容器,最多重启3次
always,在容器退出时总是重启容器
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
4、entrypoint:# 覆盖容器的默认 entrypoint 指令 (等同于 docker run --entrypoint 的作用)
entrypoint: bash -c "chown -R mysql:mysql /var/log/mysql && exec /entrypoint.sh mysqld"
5、environment:# 设置环境变量, environment 的值可以覆盖 env_file 的值 (等同于 docker run --env 的作用)
MYSQL_ROOT_PASSWORD: lddong
TZ: "Asia/beijing"
6、command:启动时执行的命令(将覆盖原有启动命令)
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--max_allowed_packet=256M
--default-time-zone=+8:00
--initialize
--lower_case_table_names=1
7、volumes: 将容器中目录挂着到宿主机(宿主机覆盖容器中目录)
- ./lddong/mysql8/data:/var/lib/mysql:rw
- ./lddong/mysql8/conf/my.cnf:/etc/mysql/my.cnf:rw
- ./lddong/mysql8/logs:/var/log/mysql:rw
- ./lddong/mysql8/mysql-files:/var/lib/mysql-files:rw
# 数据库还原目录 可将需要还原的sql文件放在这里
- ./lddong/mysql8/source:/docker-entrypoint-initdb.d
8、container_name: 给启动的容器命名
container_name: nginx
案例:
docker-compose.yml
version: '3'
services:
redis:
image: haoningfei/redis:6.0.9
ports:
- 6379 :6379
restart: always
environment:
- TZ="Asia/beijing"
command: redis-server --port 6379 --requirepass 1qaz@2wsX --appendonly yes
container_name: redis
networks:
- xjgc-bridge
nginx:
restart: always
image:nginx:1.23.2
ports:
- "80:80"
volumes:
- ./lddong/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./lddong/nginx/cert:/etc/nginx/cert
- ./lddong/nginx/dist:/home/xj/vue/dist
- ./lddong/xjcustom/dist:/home/xj/vue/xjcustom
container_name: nginx
networks:
- xjgc-bridge
docker-compose常见操作命令,docker-compose.yml 可以指定模板启动,例如:
docker-compose -f ./docker-compose.yml up -d
docker-compose -h # 查看帮助
docker-compose up # 创建并运行所有容器
docker-compose up -d # 创建并后台运行所有容器
docker-compose -f docker-compose.yml up -d # 指定模板
docker-compose down # 停止并删除容器、网络、卷、镜像。
docker-compose logs # 查看容器输出日志
docker-compose pull # 拉取依赖镜像
dokcer-compose config # 检查配置
dokcer-compose config -q # 检查配置,有问题才有输出
docker-compose restart # 重启服务
docker-compose start # 启动服务
docker-compose stop # 停止服务
docker-compose ps 列出项目中所有的容器
docker-compose logs 查看容器中日志信息
注:本次安装时根据centos X86系统安装