ᕕ( ᐛ )ᕗ DawnStar's Blog

【Docker3】基础

一、常见命令

1. 镜像命令

2. 容器命令

3. 案例

拉取nginx镜像,创建并运行nginx容器

// 拉取镜像
docker pull nginx
// 查看镜像列表
docker images
// 保存镜像到本地
docker save -o nginx.tar nginx:latest
// 删除
docker rmi nginx:latest
// 加载
docker load -i nginx.tar
// 创建并运行容器
docker run -d --name nginx -p 80:80 nginx
// 查看容器
docker ps
// 停止
docker stop
// 查看
docker ps -a
// 启动
docker start nginx
// 查看日志
docker logs
// 进入内部
docker exec -it nginx bash
// 退出
exit

二、数据卷

数据卷volume是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁。

/var/lib/docker/volumes/…创建数据卷。

docker volume --help

1. 案例1:利用nginx部署静态资源

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html  nginx
docker volume ls
docker volume inspect html

2.案例2:MySQL容器的数据挂载

// 查看容器详情
docker inspect

注:

docker run -d \
	--name mysql \
	-p 3306:3306 \
	-e TZ=Asia/Shanghai \
	-e MYSQL_ROOT_PASSWORD=dfjb \
	-v /root/mysql/data:/var/lib/mysql \
	-v /root/mysql/init:/docker-entrypoint-initdb.d \
	-v /root/mysql/conf:/etc/mysql/conf.d \
	mysql:8.0.31

自定义镜像

Dockerfile就是一个文本文件,其中包含一个个的指令,用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:

当写好了Dockerfile,可以利用下面命令来构建镜像:

docker build -t myImage:1.0 .
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
docker images
docker run -d --name docker-demo -p 8080:8080 docker-demo:1.0
docker ps

网络

默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上。

172.17.0.1/16

加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:

docker network ls
docker network create dawn
docker netword connect dawn mysql
docker inspect mysql

docker run -d --name dd -p 8080:8080 --network dawn docker

#Docker