Docker(4)命令(docker,镜像,运行,容器)
2020-04-14
Docker操作
# 启动docker
systemctl start docker
#设置docker开机自启
systemctl enable docker
#重启docker
systemctl restart docker
#关闭docker
systemctl stop docker
镜像操作
从 Docker 镜像仓库获取镜像的命令是 docker pull
。其命令格式为:
docker pull [选项] [Docker Registry 地址[:端口号](这个有默认的)/]仓库名[:标签]
常见的选项(option):
-name | 为启动后的容器起一个名字 |
---|---|
-p | 配置宿主机和容器的端口映射,格式(宿主机:容器)。宿主机端口接受的数据,转发给容器端口 |
-v | 配置宿主机和容器的目录映射,格式(宿主机:容器)。容器保存在目录的数据会保存在宿主机目录中,容器读取目录中的数据也会从宿主机目录读取, 如果不配置目录映射,容器关闭后会清空产生的所有数据。 |
-it | 以交互模式启动容器,通常搭配 /bin/bash 参数使用 (进入容器内部)。 容器启动后自动进入容器内部系统,在输入的命令就是在容器内系统执行的命令,使用 exit 退出容器,回到宿主机,容器会自动关闭。 |
-d | 以后台运行模式启动容器 |
--rm | 退出容器后,删除容器 |
bash | shell脚本的处理器,使用了才能用shell |
可以通过 docker pull --help
命令看到,这里我们说一下镜像名称的格式。
- Docker 镜像仓库地址:地址的格式一般是
<域名/IP>[:端口号]
。默认地址是 Docker Hub。 - 仓库名:如之前所说,这里的仓库名是两段式名称,即
<用户名>/<软件名>
。对于 Docker Hub,如果不给出用户名,则默认为library
,也就是官方镜像。
查看本地镜像列表docker images [option]
删除镜像:
注意:删除镜像前要先删除容器
- 删除所有没用的悬空镜像
docker image prune
- 删除镜像比如:
docker rmi 5a9061639d0a
容器操作(镜像运行之后是容器)
示例 1:
docker run \ #运行容器,可以当作创建容器的命令,每这样一次,就会自动创建一个容器
--name mynginx \ #容器名字
-p 8070:80 \ #用户访问宿主机8070端口,宿主机把8070收到的数据转发给80端口
#操纵某(宿主机的/root/docker/nainx/log或者容器的/var/log/nginx)一个目录都会发生变化
-v /root/docker/nainx/log:/var/log/nginx \
#以交互式的形式运行容器
-it \
docder-registry:5000/nginx \
/bin/bash #docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash
解释:
- 以交互模式运行 docker-registry:5000/nginx 镜像,启动容器后打开 /bin/bash 程序
- 容器名字叫做:mynginx
- 容器的 80 端口绑定在宿主机的 8070 端口
- 容器的 /var/log/nginx 目录绑定在宿主机的 /root/docker/nginx/log 目录
运行镜像之后镜像成为容器
#使用-p给一个运行的端口号
#tomcat后边跟的版本号,表示运行这个版本
docker run -p 8080:8080 tomcat:9-jre8
docker run
就是运行容器的命令,我们这里简要的说明一下上面用到的参数。
查看容器列表
docker ps #没有选项则查看运行中的容器列表
docker ps -a #全部容器列表(未运行+运行中)
docker ps -a -q #查看所有状态的容器编号(CONTAINER ID)
查看的列表内容:
| CONTAINER ID | 容器(id)唯一标识 |
| --- | --- |
| IMAGE | 生成容器的镜像 |
| COMMAND | 容器启动后执行的命令 |
| CREATED | 容器的创建时间 |
| STATUS | 状态,Up(运行中)Exited(未运行) |
| PORTS | 端口映射 |
| NAMES | 容器名字 |
启停命令
docker start/stop/kill/restart CONTAINER 启动/停止/强制停止/重启容器
CONTAINER 可以使用NAMES或者CONTAINER ID
使用CONTAINER ID的时候可以只输入唯一的前n位
比如:
docker start 3148
删除容器:
docker rm CONTAINERID/NAME #删除未运行的容器
docker rm 3148
进入容器内部:docker exec -it fCONTAINERID/NAME /bin/bash #进入容器内部(进入后台运行的容器)
docker exec -it fe3a3a74a982 /bin/bash #进入容器内部(进入后台运行的容器)
nginx -s stop #进入容器内部后关闭nginx
exit #从容器内部退出到宿主机,不会对容器产生影响,不会关闭容器
所有文件写入操作,都应该使用数据卷(Volume),或者绑定宿主目录,在这些地方的读写会跳过容器存储层,直接对宿主或者网络存储发生读写,其稳定性能更高。
标题:Docker(4)命令(docker,镜像,运行,容器)
作者:张范
地址:http://misterzhang.top/articles/2020/04/12/1586689326757.html