1、linux下载docker
1.1环境检查
1、查看linux系统环境
cat /etc/os-release\
2、查看系统内核
uname -r
1.2环境准备
1、卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装工具包
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
// 配置yum使用阿里云镜像地址(建议使用该配置,国外比较慢)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、更新yum
yum makecache fast
yum updates
1.3 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
【注意】配置docker下载镜像,为国内地址
# 1)使用命令配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4zgajege.mirror.aliyuncs.com"]
}
EOF
# 2)使用手动配置
# 到/etc/docker目录下创建daemon.json文件,在文件中添加配置
{
"registry-mirrors": ["https://4zgajege.mirror.aliyuncs.com"]
}
加载配置文件重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
2、docker基础命令
2.1启动、重启、停止docker
# 启动docker
systemctl start docker
service docker start
# 重启docker
systemctl restart docker
service docker restart
# 停止docker
systemctl stop docker
service docker stop
2.2 卸载docker
# 卸载docker
yum remove docker-ce docker-ce-cli containerd.io
# 删除资源
rm -rf /var/lib/docker
2.3 查看docker信息命令
docker version
docker info
docekr --help
3、docker镜像命令
# 查看镜像
docker images
# 搜索镜像
docker search 镜像名
docker search mysql
# 下载镜像,指定版本【tag】下载
docker pull mysql:5.7
# 删除镜像
docker rmi -f 镜像id
# 删除所有进行,通过命令所搜出所有docker镜像,传递参数删除
docker rmi -f ${docker images -aq}
4、docker容器命令
【注意】容器后台运行,需要一个前台进行,不然docker会认为没有提供服务,自动停止容器
4.1镜像运行
# 运行镜像
docker run 镜像名
docker run centos
# 带参数运行命令
docker run [可选参数] images
--name= # 容器名字
-d # 后台运行
-it # 交互运行,运行后直接进入容器
-p # 指定端口映射,应主机端口:容器端口
-P # 随机指定端口
# 运行centos
docker run -it centos /bin/bash
容器操作
# 1)停止容器退出
exit
# 2)不停止容器退出
Ctrl+P+Q
4.2 容器查看
# 查看正在运行容器
docker ps
# 查看所有容器,运行过的容器
docker ps -a
4.3 删除容器
# 删除容器
docker rm 容器id
# 强制删除所有容器
docker rm -f ${docker ps -aq}
4.4 启动、停止容器
docker start 容器id
docker restart id
docker stop id
docker kill id
4.5 查看容器运行日志
# 查看容器运行日志
docker logs 容器id
# 查看容器进程信息
docker top id
# 查看容器详细信息
docker inspect id
4.6 进入容器
# 直接进入容器,打开新终端
docker exec -it id /bin/bash
# 进入正在容器正在运行终端
docker attach 容器id
4.7拷贝容器文件到主机
docker cp 容器id:容器内路径 目的主机路径
5、容器数据卷
通过卷挂载,实现删除容器,在主机中依然可以保留数据
5.1mysql示例
1、普通启动mysql 启动mysql需要配置mysql的连接用户、密码,这里用户名为root
docker run --name mysql -d -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
2、通过卷挂载启动mysql
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
【参数说明】
-v 卷挂载, 主机地址:容器挂载地址
-d 后台运行
-e配置mysql密码
5.2匿名挂载、具名挂载
# 匿名挂载,不写卷名,nginx为镜像名
docker run -d -P -v /etc/nginx nginx
# 具名挂载,juming就是主机中的卷名
docker run -d -P -v juming:/etc/nginx ngxin
5.3查看卷
# 查看所有卷
docker volums ls
# 查看这个卷信息
docker volum inspect 卷名
6、制造进行
步骤: 1、创建Dockerfile文件,【注意Dockerfile,没有后缀】 2、为Dockerfile文件写创建镜像命令 3、docker build 生成镜像 制造tomcat的Dockerfile文件内容
# 基于centos构建
FROM centos
#设置作者信息
MAINTAINER luhuafa<1050973864@qq.com>
# 拷贝readme.txt 文件到容器/usr/local目录下
COPY readme.txt /usr/local/readme.txt
# 添加jdk、tomcat压缩包到容器,会自动解压
ADD jdk-8u311-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.54.tar.gz /usr/local/
# 给容器下载vim命令
RUN yum -y install vim
# 设置环境变量,容器启动后自动进入/usr/local目录
ENV MYPATH /usr/local
# 设置工作空间
WORKDIR $MYPATH
# 配置java环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 配置tomcat环境变量
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.54
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME:$CATALINA_BASH/bin
# 暴露tomcat端口
EXPOSE 8080
# 写命令,启动容器的时候启动tomcat,通过&&拼接命令 配置日志目录
CMD /usr/local/apache-tomcat-9.0.54/binstartup.sh && tail -F /usr/local/apache-tomcat-9.0.54/bin/logs/catalina.out
build命令 【注意】后面有个"."代表当前目录 ,在当前目录构建镜像
docker build -f /home/docker-test/Dockerfile -t xiaolu/centos:1.0 .
参数说明
-f 配置文件,配置文件使用官方命名Dockerfile,则不用-f,指定配置文件,会自动搜索Dockerfile文件来构建镜像
-t 目标
|