Table of Contents
<a id="orge21ea27"></a>
docker的使用
docker在运行命令时需要本机有一个docker服务
启动该服务
sudo systemctl start docker
设置该服务开机启动
sudo systemctl enable docker
docker将程序及依赖打包进image
列出docker所有的image
docker image ls
因为docker 需要root权限, 每次都要输入sudo 比较麻烦, 可以将当前用户加入docker组
sudo usermod -aG docker $USER
完成之后需要注销再登录, 就能不带sudo执行docker命令了, 好像也可以执行newgrp docker来完成, 没试过
官网
<a id="orgfef36dd"></a>
image 相关
官方image仓库
换源: docker国内
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
拉取镜像 docker image pull <repository>:<tag> 名字:标签 标签不指定的话就是latest
列出镜像 docker image ls
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
创建一个镜像 Dockerfile
<a id="org77697de"></a>
容器
一个镜像跑起来就是一个容器
启动镜像(docker run [-t -i] 仓库/名字:标签 命令)
一但重启就会恢复到原来的状态
<a id="org1a8538c"></a>
run 参数解释
docker run –help 查看全部帮助
-
-t 以终端/伪终端运行
-
-i 可交互的
-
-d 后台执行
-
-e 指定环境变量列表
docker run -e xx=10 -t -i ubuntu /bin/bash
echo $xx # 10 -
-p phome:pdocker 将端口内部端口pdocker映射为外部端口phome
-
–name 给容器指定一个好记的名字
<a id="orgc035495"></a>
创建一个镜像
-
将指定容器提交为新的镜像
docker commit -m="注释" -a="作者" 容器id 仓库/名字:标签
-
从头创建一个全新镜像
新建一个Dockerfile
FROM 从一个基础镜像开始
MAINTAINER 维护者 邮件
RUN 执行命令
EXPOSE 暴露的端口
ENV 设置环境变量
USER 设置uid
VOLUME 访问宿主机上的目录
WORKDIR CMD的执行路径
CMD 在镜像生成的容器中运行
命令必须大写, 每个命令是一层
其他命令:参考自
ADD A B 将文件移动到容器 A是宿主机文件,或url, 如果是url的话会下载内容 B是容器位置
ENTRYPOINT 一个镜像只能有一个该参数, 以最后面的为准, 当有CMD 时, 可以在CMD中只写参数, 不写执行的命令, 这样会将该参数传递给ENTRYPOINT
<a id="org36e37ce"></a>
查看所有的容器
docker ps -a # 查看所有容器 包括已经关闭的
docker ps # 查看正在运行的容器
会显示如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b0ea2a005eb7 ubuntu "/bin/bash" 6 minutes ago Exited (0) 4 minutes ago graciouslehmann
ed3bd8d910f9 ubuntu "-t -i /bin/bash" 6 minutes ago Created ferventcori
<a id="org0d5f4a8"></a>
查看容器的操作历史
docker logs 容器名字/ID(docker ps [-a] 查询)
<a id="orgd3881f6"></a>
在外部停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER…]
停止一个或多个容器
参数 -t, –time 延时xx秒停止
<a id="orgf331187"></a>
其他指令
通过docker展示全部可用操作
docker 指令 –help 查看详细指令帮助
attach 加入一个正在运行的容器
build 从DockerFile创建一个image
commit 将一个改变后的容器提交为image
cp 从本地将文件/夹拷贝到容器
create 创建一个新的容器
port 查看容器端口映射到宿主机的哪个端口 docker port nostalgicmorse 5000 –> 0.0.0.0:49155 容器5000端口映射在了49155端口
rm 删除一个停止的容器
restart 重新启动一个或多个容器
rename 修改容器的名字
images 本地共享
将镜像导出为文件
docker save -o file_name.zip image_name
将文件加载为镜像
docker load -i file_name.zip
或者:
docker load < file_name.zip
网友评论