一、Docker介绍
二、Docker基础
2.1 Docker安装及配置
2.1.2 Centos 7环境安装Docker
$ systemctl stop firewalld.service vi /etc/selinux/config
$ cd /etc/yum.repos.d/
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ yum install -y docker-ce.x86_64
$ wget systemctl enable docker
$ wget yum -y update xfsprogs
$ systemctl start docker
2.1.2 Win10 环境安装Docker
2.1.3 Mac 环境安装Docker
2.2 Docker配置阿里云镜像加速
Docker安装完成后默认的镜像仓库地址是 https://hub.docker.com/ ,下载镜像比较慢,可以配置阿里云镜像加速,步骤如下:
-
登录阿里云,访问https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors -
根据操作提示进行操作
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9sxuudkl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.3 Docker基本操作命令
-
构建容器:docker run 镜像标识|镜像名称[tag]
-i :表示以交互模式运行容器-d :表示后台运行容器,并返回容器ID-t :为容器重新分配一个伪输入终端-p :将容器内某个端口映射宿主机上的某个端口。-e :传递环境变量--network :指定网络模式--add-host :往容器内添加host地址--name :为容器指定名称 -
查看正在运行中的容器:docker ps -
查询所有容器:docker ps -a -
启动容器:docker start CONTAINER_ID / CONTAINER_NAME -
停止容器:docker stop CONTAINER_ID / CONTAINER_NAME -
重启容器:docker restart CONTAINER_ID / CONTAINER_NAME -
删除容器:docker rm CONTAINER_ID / CONTAINER_NAME
-
停止并删除:docker stop CONTAINER_ID / CONTAINER_NAME && docker rm CONTAINER_ID / CONTAINER_NAME -
查看容器详细信息:docker inspect CONTAINER_ID / CONTAINER_NAME -
查看容器日志:docker logs CONTAINER_ID / CONTAINER_NAME -
进入容器:docker exec -it CONTAINER_ID / CONTAINER_NAME /bin/bash -
查找镜像:docker search CONTAINER_NAME -
查看本地镜像:docker images -
拉取镜像:docker pull 镜像标识|镜像名称[tag] -
删除镜像:docker rm 镜像标识|镜像名称[tag]
三、Docker安装常用镜像
举例了mysql、Redis、MongoDB、Elasticsearch、Nginx 5个常用的镜像部署,如果有需要其他的镜像部署示例,可在评论区进行留言,如果自己会肯定会回复,如果自己不会我先去学一波再回复。。。
3.1 Docker安装Mysql
$ docker search mysql
$ docker pull mysql:5.7
$ docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
3.2 Docker安装Redis
$ docker search redis
$ docker pull redis
$ docker run -itd --name redis -p 6379:6379 redis
3.3 Docker安装MongoDB
$ docker search mongo
$ docker pull mongo
$ docker run -itd --name mongo -p 27017:27017 mongo --auth
3.4 Doker安装Elasticsearch
$ docker search elasticsearch
$ docker pull elasticsearch:7.6.2
$ mkdir -p /mydata/elasticsearch/config
$ mkdir -p /mydata/elasticsearch/data
$ chmod 777 -R /mydata
$ echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
$ docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.6.2
3.5 Docker安装Nginx
$ docker search nginx
$ docker pull nginx
$ docker run --name nginx -p 8080:80 -d nginx
四、Docker自定义镜像
4.1 初识Dockerfile
FROM :基于哪个镜像MAINTAINER :注明作者COPY :复制文件进入镜像(只能用相对路径,不能用绝对路径)ADD :复制文件进入镜像(假如文件是.tar.gz文件会解压)WORKDIR :指定工作目录,假如路径不存在会创建路径ENV :设置环境变量EXPOSE :暴露容器端口RUN :在构建镜像的时候执行,作用于镜像层面ENTRYPOINT :在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条CMD :在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条容器启动后执行默认的命令或者参数,允许被修改命令格式:
- shell命令格式:
RUN yum install -y lsof - exec命令格式:
RUN [ "yum","install" ,"-y" ,"lsof"]
4.2 Dockerfile构建Jar包镜像
-
jar包所在目录:/var/www/website -
创建dockerfile $ touch dockerfile
-
编辑dockerfile FROM adoptopenjdk/openjdk8-openj9:alpine-slim
MAINTAINER programmer_grouth xxxxx@163.com
ENV LANG C.UTF-8
WORKDIR /website
RUN mkdir /website/logs
ARG JAR_FILE=website.jar
COPY ${JAR_FILE} app.jar
EXPOSE 9015
ENTRYPOINT ["java","-jar","-Xms512m","-Xmx1536m","-Dfile.encoding=UTF-8","app.jar"]
五、Docker-Compose的介绍与安装
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
5.1 Compose 安装
$ yum install -y epel-release
$ yum install -y python-pip
$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose==1.24.1
$ docker-compose version
5.2 Docker-Compose快速搭建个人博客
-
创建docker-compose.yml 文件 version: "3.3"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
-
启动 $ mkdir my_wordpress
$ cd my_wordpress
$ docker-compose up -d
六、结语
感谢每位给笔者点双击的伙伴,谢谢您的支持!!!更多内容请扫码关注微信公共号,笔者会持续更新其他精彩内容。
|