docker

目录

1 docker安装

2 Docker常用命令

 2.1 Docker run 命令使用

3 Docker镜像

3.1 Dockerfile

3.1.1 FROM

3.1.2 MAINTAINER

3.1.3 RUN

3.1.4 WORKDIR

3.1.5 COPY

3.1.6 EXPOSE

3.1.7 CMD

3.1.8 ENTRYPOINT

3.1.9 ENV

3.1.10 ARG

3.1.11 VOLUME

3.1.12 USER

3.2 构建docker镜像


1 docker安装

1.1 yum安装docker

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io

2 Docker常用命令

命令
docker images查看镜像
docker images -q只显示镜像ID
docker search mysql搜索远程仓库镜像
docker pull mysql:5.7.35拉取远程仓库镜像
docker rmi 镜像ID删除镜像
docker rmi -f 镜像ID强制删除镜像
docker ps查看正在运行docker容器
docker ps -a查看所有docker容器
docker ps -aq查看多有docker容器的ID
docker run创建并启动容器
docker create创建容器
docker start 容器ID启动容器
docker restart 容器ID重启容器
docker stop 容器ID停止容器运行
docker rm 容器ID删除容器
docker rm -f 容器ID强制删除容器
docker exec -it 容器ID /bin/bash进入容器交互;输入exit退出
docker inspect 容器ID查看容器详细信息
docker logs 容器ID查看容器日志

 2.1 Docker run 命令使用

 Docker官方参考文档:Docker run reference | Docker Documentation

docker run的格式:docker run 参数 镜像名:标签 command (可以没有command和参数)

例如:

创建并启动MySQL容器

docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/data:/var/lib/mysql mysql:5.7.35

常用参数:

--name:指定容器名

-d:容器后台运行

-p:指定容器宿主服务器端口和容器端口的映射关系;例如:-p 3306:3306

-v:挂载数据卷(容器数据的持久化),容器宿主服务器目录:容器目录;例如:-v /root/data:/var/lib/mysql

-e:设置环境变量

3 Docker镜像

3.1 Dockerfile

3.1.1 FROM

指定基础镜像,例如使用busybox作为基础镜像,没有基础镜像就用scratch。

FROM busybox

3.1.2 MAINTAINER

自定义信息,比如:镜像维护人信息,实际可有可无。

MAINTAINER bigWhiteShark

3.1.3 RUN

运行指定命令,可以多个RUN指令(最多127),且一个RUN指令就相当于加一层镜像,可以使用&&连接命令减少层数;镜像层数可以用docker inspect命令查看layers属性。

RUN mkdir /home/data

3.1.4 WORKDIR

容器工作目录,容器启动后就会在容器的工作目录下;目录不存在会自动创建。

WORKDIR /app

3.1.5 COPY

将容器宿主服务器的文件或目录拷贝到容器中。

COPY /etc/passwd /app

另外:ADD指令作用类似于COPY,不同之处在于ADD支持使用URL上下载文件拷贝到容器中。

ADD http://127.0.0.1/file/app.tar.gz /app

3.1.6 EXPOSE

暴露端口,比如,容器的web应用的端口指定在80端口,后续就可以通过docker run命令的-p选项,通过映射端口访问。

EXPOSE 80

3.1.7 CMD

容器启动时要运行的命令;

可以写成这样

CMD ["echo", "-e", "123\n123"]

 也可以写成这,或是一个可执行的文件,例如:脚本

CMD echo -e "123\n123"

可以仅用于给ENTRYPOINT提供参数

CMD ["-a", "-l"]
ENTRYPOINT ["ls"]

实际就是ls -al命令;如有多个CMD指令,只有最后一个CMD生效

3.1.8 ENTRYPOINT

容器启动时要运行的命令;可以写成这样

ENTRYPOINT ["echo", "123"]

也可以写成这样,或是一个可执行的文件,例如:脚本

ENTRYPOINT echo "123"

3.1.9 ENV

设置环境变量,例如MySQL容器启动时需要设置MYSQL_ROOT_PASSWORD变量

ENV MYSQL_ROOT_PASSWORD=123456

3.1.10 ARG

设置环境变量

ARG VERSION=latest

3.1.11 VOLUME

声明数据卷

3.1.12 USER

指定运行用户

3.2 构建docker镜像

docker build -t imageName:tag -f dockerfileName .

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值