docker 使用
Docker 使用
安装docker
-
mac 安装 Docker
brew cask install docker # 若没有安装brew工具,先使用命令安装homebrew包管理工具 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
linux 安装 Docker
#1.卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine #2.需要的安装包 yum install -y yum-utils #3.设置镜像的仓库 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #上述方法默认是从国外的,不推荐 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推荐使用国内的 #4.更新软件包索引 yum makecache fast #5.安装docker docker-ce 社区版 而ee是企业版 yum install docker-ce docker-ce-cli containerd.io # 这里我们使用社区版即可 #6.启动docker systemctl start docker #7.使用docker version 查看是否安装成功 docker version
-
windows 安装docker
- 下载
Docker Desktop
并安装,如果启动失败,按照提示操作,即可解决。随后便可以在powershell中使用docker了
- 下载
卸载 Docker
-
服务器卸载docker
#1.卸载依赖 yum/apt yum remove docker-ce docker-ce-cli containerd.io apt remove docker-ce docker-ce-cli containerd.io #2. 删除资源 /var/lib/docker 是docker的默认工作路径! rm -rf /var/lib/docker
Docker 简单命令
-
测试命令
docker -v / docker --version # 查看docker版本 docker pull hello-world # 一个简单的测试镜像 docker run hello-world
-
镜像相关操作
# 搜索、下载 docker search image_name # 搜索镜像 docker pull image_name # 下载镜像 docker load -i xxx.zip # 加载文件到镜像 docker images # 查看所有镜像 # 删除 docker rmi image-id # 删除镜像 docker rmi -f $(docker images -aq) # 删除所有镜像 docker images -aq | xargs docker rmi # 删除所有镜像 # 修改 docker tag image_id image_name:tag_name # 修改镜像tag
-
容器相关操作
docker ps # 查看所有容器 docker ps -aq # 获取所有容器 ID docker stop container-id # 停止容器运行 docker stop $(docker ps -aq) # 停止所有容器 docker ps -aq | xargs docker stop # 停止所有容器 docker restart container-id # 重启容器 docker rm container-id # 删除容器,不能删除正在运行的容器。可先暂停,后删除 docker rm -f $(docker ps -aq) # 删除所有容器 docker ps -aq | xargs docker rm # 删除所有容器 docker commit -m "my images" container_id REPOSITORY:TAG # 容器——>镜像 -m # 描述 -a # 作者 -c # 使用Dockerfile指令来创建镜像 -p # 在commit时,将容器暂停
-
docker服务重启
-
systemctl 方式
systemctl daemon-reload # 守护进程重启 systemctl restart docker # 重启docker服务 systemctl stop docker # 关闭docker
-
service 方式
service docker restart # 重启docker服务 service docker stop # 关闭docker
-
运行 Redis 镜像
-
创建容器
docker run -p 6379:6379 -d redis:latest redis-server # 基本 docker run -p 6379:6379 --name redis_spider -v /Users/hui/redis/redis_spider/conf/redis.conf:/etc/redis/redis.conf -v /Users/hui/redis/redis_spider/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes # 包含配置
-
连接redis
docker exec -ti containerid redis-cli # 此命令可以在终端中操作redis redis-cli -h host -p port -a password # 远程连接 连接时,若有中文乱码,--raw
-
设置密码
config get requirepass # 查看是否设置密码 config set requirepass 密码 # 设置密码 AUTH '密码' # 验证密码
运行 Mysql 镜像
-
创建容器
docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
-
连接mysql
docker exec -ti container_id /bin/bash # 进入容器 # 终端直接操作 mysql -u root -p # 登录 mysql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # 修改 root 可以通过任何客户端连接 # 代码连接数据库事的配置信息 MYSQL_HOST = '127.0.0.1' MYSQL_PORT = 3306 # 注意:port端口号是int,不能写成字符串 MYSQL_DB = 'dishonest' MYSQL_USER = 'root' MYSQL_PASSWORD = '123'
-
操作mysql
# 删除数据库中数据后,新增数据ID不从1开始,而是继续增加。 truncate table table_name; # 此命令会清空表,再次增加数据,会从id为1开始
运行centos8镜像
-
创建容器
docker search centos docker pull centos docker run -dit -p 5001:22 --privileged=true image_id /sbin/init # 最好设置port映射 --privileged=true # 获取真正的root权限 -d # 守护进程 /sbin/init # 这样启动,可以正常使用 systemctl 命令 docker exec -it container_id /bin/bash
-
安装ifconfig
-
yum search ifconfig
-
报错:Error: Failed to download metadata for repo 'appstream'
-
原因:下载源的问题
-
解决: 本质替换extras、baseos、appstaream等3个repo配置文件内容
1. 找到repo文件所在位置 find / -name *repo # 比如:/etc/yum.repos.d 2. 需要替换的内容 https://developer.aliyun.com/mirror/centos # 可以看看 https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo # 目标 3. 替换:将curl得到的内容,替换到 curl -o /etc/yum.repos.d/CentOS-Linux-Extras.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo curl -o /etc/yum.repos.d/CentOS-Linux-BaseOS.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo curl -o /etc/yum.repos.d/CentOS-Linux-AppStream.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo 4. 安装扩展,清理缓存,生成缓存,查看可用源 dnf clean all dnf makecache dnf repolist
-
-
yum install net-tools.x86_64
-
-
启用
service
命令bash: service: command not found
yum list | grep initscripts # 可以搜到 initscripts.x86_64 yum install initscripts -y # 完成
-
安装ssh
yum install -y openssl openssh-server # 安装基本的包 systemctl start sshd.service # 启动ssh的服务 《===》 service sshd.service start systemctl enable sshd.service # 设置开机自动启动ssh 服务 /usr/sbin/sshd -D # 启动ssh cd ~; chmod 700 .ssh; chmod 600 .ssh/* # 赋予权限 yum install openssh*
-
安装其他基础工具
yum install -y unzip zip yum install net-tools yum install wget.x86_64 yum install firewalld systemd -y
-
使用mobax链接服务器了
报错
- error during connect: This error may indicate that the docker daemon is not running.
- 原因:桌面docker没有启动
- 解决:启动
Desktop Docker
即可
- System has not been booted with systemd as init system (PID 1).
- 注意容器生成命令:
- docker run -dit -p 5001:22 --privileged=true image_id /sbin/init # /sbin/init 是重点
- 注意容器生成命令: