一、Docker的安装
1.使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
2.卸载
删除安装包:
yum remove docker-ce
删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker
二、配置阿里云的镜像
地址可以去阿里云中的容器服务中获取,如下图
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、Docker的基本命令
1.Docker服务相关命令
- 启动Docker服务
systemctl start docker
- 停止Docker服务
systemctl stop docker
- 重启Docker服务
systemctl restart docker
- 查看Docker服务状态
systemctl status docker
- 设置开机自启动Docker服务
systemctl enable docker
2.Docker镜像常用相关命令
- 查看本地镜像
docker images
- 网络上搜索镜像
docker search xxxx
- 拉取镜像
docker pull xxx
#带版本号,去docker hub上查看
docker pull redis:6.0
- 删除镜像
#xxx可以为镜像名称或者前4位id
docker rmi xxx
#删除全部镜像
docker rmi`docker images -q`
3.Docker容器相关命令
- 查看容器
#查看运行容器
docker ps
#查看历史运行容器
docker ps -a
- 创建容器
docker run
-i #一直运行
-t #分配终端可以执行命令
-d #后台运行连接
--name #起名
-p #将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-it # 交互式
-id #守护式
#例子
#xxxx镜像为id或名称
docker run --name=mynginx -p 80:80 -d xxxx
- 进入容器
#xxxx镜像为id或名称
docker exec -it xxxx /bin/bash
- 启动容器
#xxxx镜像为id或名称
docker start xxxx
- 启动容器
#xxxx镜像为id或名称
docker stop xxxx
- 删除容器
#xxxx镜像为id或名称
docker rm xxx
#删除全部
docker rm `docker ps -aq`
- 查看容器信息
#xxxx镜像为id或名称
docker inspect xxxx
四、Docker容器的数据卷
什么是数据卷
数据卷(volume) 是一个虚拟目录,指向宿主机文件系统中的某个目录。
一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。
这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了
数据卷常用命令
#docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
docker volume [COMMAND]
create #创建一个volume
inspect #显示一个或多个volume的信息
ls #列出所有的volume
prune #删除未使用的volume
rm #删除一个或多个指定的volume
配置数据卷
docker run ... -v 宿主机目录文件:容器内目录文件
#例子 -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中
docker run \
--name mynginx \
-v html:/root/html \
-p 80 :80
nginx \
五、Docker应用部署
- mysql
docker run -id \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /usr/local/mydocker/mysql/log:/var/log/mysql \
-v /usr/local/mydocker/mysql/data:/var/lib/mysql \
-v /usr/local/mydocker/mysql/config:/etc/mysql/conf.d \
mysql
- tomact
docker run -id \
--name=tomcat-0 \
-v /usr/local/mydocker/tomcat:/usr/local/tomcat/webapps \
-p 8080:8080\
tomcat
- nginx
docker run -id \
--name=tomcat-0 \
-v /usr/local/mydocker/tomcat:/usr/local/tomcat/webapps \
-p 8080:8080\
tomcat
- nginx
docker run -id \
--name=nginx-0 \
-p80:80 \
-v/usr/local/mydocker/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/mydocker/nginx/logs:/var/log/nginx \
-v /usr/local/mydocker/nginx/html:/usr/share/nginx/html \
nginx
六、镜像制作
1.容器转为镜像
docker commit 容器id 镜像名称:版本号
docker save -o 压缩包名称 镜像名称:版本号
docker load -i 压缩文件名称
2.Docker File
常用语法:
更新详细语法说明,请参考官网文档: docs.docker.com/engine/refe…
例子:部署一个jar包
创建一个新目录,目录下创建一个docker_file文件并编写
FROM java:8
MAINTAINER zhf <1978127452@qq.com>
ADD ./demo.jar ./app.jar
CMD java -jar ./app.jar
构建镜像
docker build -f ./springboot_dockerfile -t app .
使用docker run创建容器并运行
七、Docker-Compose
1.安装
#下载
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#设置文件可执行
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose -version
#卸载 删除二进制文件即可
rm /usr/local/bin/docker-compose
2.编排
version: "2.0"
services:
nginx:
image:
nginx
ports:
- 80:80
links:
- app
volumes:
- /usr/local/mydocker/nginx/config:/etc/nginx/conf.d
app:
image:
app
expose:
- "9000"
3.启动
docker-compose up -d