Docker的一些常用命令

安装docker

wget https://get.daocloud.io/docker | sh

或

curl -sSL https://get.daocloud.io/docker | sh

 

 

docker常用命令

docker pull images

从镜像仓库拉取镜像,images为镜像名称



docker run images 启动镜像



docker run --name x -p 8081:80 -v /home/xxxxx:/home/yyyyy -d y

x为容器名称,y为镜像

--name 代表此次容器启动的名称

-p 端口映射 把容器的80端口映射到宿主机的8081端口

-d 后台运行

-v 挂载文件 代表把宿主机的/home/xxxx挂载到容器的/home/yyyyy目录下

-e 设置环境变量 -e xxx=yyy

--link xxx 把另一个容器名字为xxx的和当前连接起来,可以直接通过xxx访问另一个容器

-m 设置内存大小 单位可以是b,k,m,g,如果不设置则默认使用跟宿主机一样大小

-c 设置cpu共享权重,多个容器根据权重分配宿主机cpu大小

--cpuset-cpus 设置容器能使用的cpu集,如--cpuset-cpus=“1,3” 则当前容器只能使用CPU1跟CPU3

docker run常用指令:

https://www.runoob.com/docker/docker-run-command.html


 

docker stop x

停止容器名称为x的容器



docker exec -it x /bin/bash

代表进入到容器名称为x的终端中



docker images

查看当前有哪些镜像



docker rmi x

删除镜像名称为x 的镜像



docker ps

查看当前运行中的镜像

-a 查看所有镜像



docker inspect x

展示容器x的详细信息



docker rm x

删除名称为x的容器



docker commit -m '提交内容' x y

提交容器x的变更内容,内容为“提交内容”,并且命名为y

方便下次可直接启动y镜像



docker cp /home/xxxx.conf x:/home/

拷贝文件/home/xxxx.conf到容器x的/home目录中

通过dockerfile构建镜像

# 创建一个工作目录

mkdir workspace

# 进入工作目录

cd workspace

# 创建Dockerfile

touch Dockerfile

# 编辑DockerFile

vim Dockerfile

内容:

FROM apline:latest

CMD echo "Hello World~"

:wq

然后创建镜像

docker build -t x .

创建镜像名称为x的镜像,把当前工作目录下的文件全部输出到里面


 

Dockerfile常用命令

FROM base image 从哪个镜像上创建我们的镜像(scratch则表示自己制作基础镜像)

LABEL 定义部分信息

LABEL maintainer='wzw'

LABEL version:"1.0"

LABEL description="description"

RUN 执行命令,每一个条语句都会生成一个分层

为了美观,尽量把负责的RUN用反斜线换行\

避免无用分层,合并多条命令为一行

例如:RUN yum update && yum install -y vim \

python-dev

RUN /bin/bash -c 'source $HOME/.bashrc;echo $HOME'

WORKDIR 设置工作目录 尽量使用绝对目录,比较清晰

WORKDIR /root

WORKDIR /test #如果没有会自动创建test目录

WORKDIR demo

RUN pwd #输出结果是/test/demo

ADD 添加文件

ADD hello / #添加本地的hello的文件添加到容器中的/目录下

ADD test.tar.gz / #添加文件并解压缩

结合WOEKDIR一起使用

WORKDIR /root

ADD hello test/ #实际hello在容器中目录为 /root/test/hello

COPY 拷贝文件

和ADD类型,大部分情况,COPY优先于ADD ,ADD除了能添加文件还能解压缩

添加远程文件用curl或wget

CMD 执行命令



EXPOSE 暴露端口

WORKDIR 指定路径

MAINTAINER 维护者

ENV 设置环境变量

ENV MYSQL_VERSION 5.6 #设置MYSQL_VERSION的版本号为5.6

可以结合其他命令一起使用

RUN apt-get install -y mysql-server= "${MYSQL_VERSION}" \

&& rm -rd /var/lib/apt/list/*

ENTRYPOINT 容器入口

USER 指定用户

VOLUME 挂载文件(持久化存储)



RUN & CMD & ENTRYPOINT



RUN:执行命令并创建新的Image Layer(新的一层)

CMD:设置容器启动后,默认执行的命令和参数

ENTRYPOINT:设置容器启动时运行的命令



CMD:

容器启动时默认执行的命令 docker run image

docker run指定了其他命令,CMD会被忽略 docker run -it cmd-test /bin/bash

如果定义了多个CMD,只有最后一个会被执行

ENTRYPOINT:

让容器以应用程序或则服务的形式运行

不会被忽略,一定会执行







执行格式

Shell格式

RUN apt-get install -y vim

CMD echo “hello docker”

ENTRYPOINT echo "hello docker"



Exec格式

RUN [“apt-get”,"install","-y","vim"]

CMD ["/bin/echo","hello docker"]

ENTRYPOINE ["/bin/bash","-c","echo hello $name"]





docker network ls

展示docker 的网络列表



docker network create -d overlay demo

创建一个命名为demo的overlay网络

docker network inspect demo

展示网络demo 的详细信息

docketr network rm demo

删除网络demo

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值