Docker安装和使用
docker安装
环境
1. 服务器阿里云
2. CentOS Linux 7
安装
1.卸载旧脚本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装依赖包(使用国内)
设置存储库
安装yum-utils包(它提供了yum-config-manager实用程序)并设置存储库。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装Docker引擎
安装Docker Engine、container和Docker Compose
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.启动Docker
sudo systemctl start docker
5.通过运行hello-world镜像来验证Docker引擎安装是否成功
sudo docker run hello-world
打印中有 Hello from Docker! 表示启动成功
参考官方文档
https://docs.docker.com/engine/install/centos/
Docker命令
Docker命令图解
Docker常用命令
#看所有镜像
docker images
#查看正在运行的容器
docker ps
#查看所有容器
docker ps -a
#查看已退出容器
docker ps -a -q
#启动镜像ubuntu
docker run -it ubuntu /bin/bash
#后台启动容器
docker run -d 镜像名
#根据容器id进入正在运行的容器(开启新终端)
docker exec -it 容器的id bash
#根据容器id进入正在运行的容器(进入正在执行终端)
docker attach 容器id
#启动退出的容器
docker start 容器的id
#重启容器
docker restart 容器的id
#停止容器
docker stop 容器id
#强制停止容器
docker kill 容器id
#docker映射目录, 宿主机的/test目录挂载到容器的/soft目录
docker run -it -v /test:/soft centos /bin/bash
#端口映射, 运行镜像并添加端口, 格式: 容器外:容器内
docker run -d -p 8000:80 ubuntu /bin/bash
#多个端口
docker run --name ubuntu -d -p 51000:22 -p 51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 ubuntu /bin/bash
#提交容器成为一个新镜像
docker commit -m="提交的描述信息” -a=”作者” 容器id 目标像名:[TAG]
#删除容器
docker rm 容器id
#删除所有的容器
docker rm -f $(docker ps -aq)
#删除镜像
docker rmi "image"
#备份容器到文件
docker save -o ~/main.tar ubuntu
#加载容器
docker load -i ~/container-backup.tar
#保存时压缩
docker save d227774c2960 | gzip > docker_file.tgz
#加载压缩的镜像
docker load < docker_file.tgz
#docker复制文件到容器
docker cp wang.zip 容器的id:/home
#复制容器内的文件到宿主机
docker cp 容器的id:/home/wang.zip /opt
#直接容器停止并退出
exit
#容器不停止退出
ctrl + p + Q
#拉取镜像
docker pull 目标像名:[TAG]
#将自己镜像推送到服务器上
docker push 镜像名:[TAG]
#查看docker日志 tf显示日志 tail number显示条数
docker logs -tf --tail number容器id
#容器的变更历史
docker history 容器id
#实现数据同步
--volumes-from
DockerFile指令
DockerFile指令图解
DockerFile指令
FROM #基础镜镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #步骤:tomcat镜像,这个tomcat压缩包! 添加内容
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOSE #保留端口配置
CMD #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD #当构建一个被继承 DockerFile这个时候就会运行ONBUILD的指令。触发指令
COPY # 类似ADD,将我们文件拷贝到镜像中
ENV #构建的时候设置环境变量!
实战
安装tomcat
docker run -it --rm -p 8888:8080 tomcat:9.0
安装mysql
简单使用mysql
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
多个mysql实现数据共享
1. docker run -d -p 3310:3306 -v /text/etc/mysql/conf.d:/etc/mysql/conf.d -v /text/var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysq102 mysql:5.7
2. docker run -d -p 3311:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysq103 --volumes-from mysq102 mysql:5.7
简单安装RabbitMQ
docker run -d --hostname my-rabbit -p 15672:15672 -p 5672:5672 -p 25672:2567 --name some-rabbit rabbitmq:3-management
请求http://host-ip:15672
账号/密码默认guest/guest
参考官方文档
https://hub.docker.com/