docker和docker-compose安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://vf2azdh1.mirror.aliyuncs.com"]
}
EOF
# 开机自启动 docker
sudo systemctl daemon-reload
sudo systemctl restart docker
# docker-compose安装 下面的方案 二选一(个人推荐第二种)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
yum install -y docker-compose
docker 对容器和镜像进行批量操作
# 列出所有的容器 ID
docker ps -aq
# 停止所有的容器
docker stop $(docker ps -aq)
# 删除所有的容器
docker rm -f $(docker ps -aq)
# 删除所有的镜像
docker rmi -f $(docker images -q)
docker 资源清理
针对container、image可以使用docker container prune
、docker image prune
命令。
docker image prune --force --all
或者docker image prune -f -a` : 删除所有不使用的镜像docker container prune -f
: 删除所有停止的容器
这里其实笔者用的最多的是 docker system prune 清理全部不需要的资源
容器开机自启动
# 容器开机自启动
docker update 容器名 --restart=always
容器的文件相关操作
docker cp mycontainer:/opt/file.txt /opt/local/
docker cp /opt/local/file.txt mycontainer:/opt/
常见服务的docker指令
# postgres
docker run -p 5432:5432 -d -v /data/odoo-db:/var/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:12
# odoo
docker run -p 8069:8069 --name odoo -d -v /data/odoo-web:/var/lib/odoo -v /data/odoo-config:/etc/odoo -v /usr/local/src/odoo:/mnt/extra-addons --link db:db -t odoo:14
# vue 打包之后 运行在 nginx
# 注 这里只适合单个页面如果要部署多个页面以及复杂功能,建议本地安装
docker run -p 8888:80 --name crm_vue -d -v /xxxxxx/dist:/usr/share/nginx/html -t nginx
# mysql
docker run --name xm_db -p 34617:3306 -e MYSQL_ROOT_PASSWORD=Joj3yXcs@J7Bp -d mysql:8.0
# redis
docker run -itd --name redis -p 10065:6379 redis
# nacos
docker run -d -p 8848:8848 --env MODE=standalone --name nacos nacos/nacos-server
# pgadmin4
docker run -d -p 31201:80 --name pgadmin4 -e PGADMIN_DEFAULT_EMAIL=xxxx@qq.com -e PGADMIN_DEFAULT_PASSWORD=8KNXOnpOFIwWIN dpage/pgadmin4
docker版本的nginx(完整版,其实这里不推荐,可以用来理解熟悉 docker 指令)
先拷贝出来一份文件
docker pull nginx
docker run --name nginx-test -p 80:80 -d nginx
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
docker ps -a
docker cp 481e121fb29f:/etc/nginx/nginx.conf /root/nginx/conf
docker stop nginx-test
docker run -d -p 80:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
kafka
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
docker run -d --name zookeeper -p 2182:2181 -t wurstmeister/zookeeper
docker run -d --name kafka \
--publish 9093:9092 \
--link zookeeper \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 \
--env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka
docker警告:WARNING: IPv4 forwarding is disabled. Networking will not work.
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #添加此行配置
# 重启 docker 服务
systemctl restart network && systemctl restart docker
# 查看修改结果
sysctl net.ipv4.ip_forward
docker 完全卸载
# 列出所有 docker 相关的软件包
yum list installed | grep docker
yum -y remove xxx
# 删除容器和镜像
rm -rf /var/lib/docker
docker 资源清理
# 删除所有未被 tag 标记和未被容器使用的镜像
docker image prune
# 删除所有未被容器使用的镜像
docker image prune -a
# 删除所有停止运行的容器
docker container prune
# 删除所有未被挂载的卷
docker volume prune