docker入门解析

docker入门解析

最近在docker上搭建了部分漏洞实战平台,感觉docker这玩意很好使,所以学习一波

docker

1
2
3
4
5
6
7
8
9
10
docker ps # 查看运行中的容器
docker images # 查看拉取的镜像
docker search nginx # 搜索nginx镜像
docker pull [Docker Registry地址]<仓库名>:<标签> # 拉取镜像
docker start/restart/stop [container ID] # 启动/重启/停止容器(可以直接停止吗)
docker exec -it [container ID] /bin/bash # 进入到容器中操作
docker rm $(docker ps -aq) # 删除所有容器
docker rmi [image ID] # 删除本地下载的镜像
docker rmi $(docker images -q) # 删除所有镜像
docker logs [container ID] # 查看容器日志

docker-compose up

1
2
3
4
5
6
7
8
9
10
11
12
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
选项包括:
-d # 在后台运行服务容器
-no-color # 不是由颜色来区分不同的服务的控制输出
-no-deps # 不启动服务所链接的容器
--force-recreate # 强制重新创建容器,不能与-no-recreate同时使用
–no-recreate # 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用
–no-build # 不自动构建缺失的服务镜像
–build # 在启动容器前构建服务镜像
–abort-on-container-exit # 停止所有容器,如果任何一个容器被停止,不能与-d同时使用
-t, –timeout TIMEOUT # 停止容器时候的超时(默认为10秒)
–remove-orphans # 删除服务中没有在compose文件中定义的容器

镜像相关命令

查看镜像

1
docker images

REPOSITORY
TAG
IMAGE ID
CREATED
SIZE

以上均存储在/var/lib/docker下

搜索镜像

1
docker search 镜像名

NAME

DESCRIPTION

STARS

OFFICIAL

AUTOMATED:自动构建,表示该镜像由docker hub自动构建流程构建

拉取镜像

1
dockr pull 镜像名

例如,下载centos镜像

1
docker pull centos:7

删除镜像

1
docker rmi 镜像ID

删除所有镜像

1
docker rmi `docker images -q`

容器相关

查看容器

1
docker ps

查看所有容器

1
docker ps -a

查看最后一次运行的容器

1
docker ps -l

查看停止的容器

1
docker ps -f status=exited

创建与启动容器

1
2
3
4
5
6
7
docker run
# -i:表示运行容器
# -t:表示启动后进入其命令行。加入这两个参数后,容器创建就能登陆进去。即分配一个伪终端
# --name:为创建的容器命名
# -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或者文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
# -d:创建一个守护式容器在后台运行(这样创建容器后不会自动登陆容器,如果只加-i -t这里两个参数,创建后就会自动进入容器
# -p:端口映射,前者宿主机端口,后者容器内端口,可以用多个-p做多个端口映射

(1)交互式方式创建容器

1
docker run -it --name=容器名 镜像名:标签 /bin/bash

这时我们用ps命令看可以发现启动的容器,状态为启动

退出当前容器

1
exit

(2)守护式方式创建容器

1
docker run -di --name=容器名称 镜像名称:标签

登录守护式容器的方式

1
docker exec -it 容器名称(or容器id) /bin/bash

停止和启动容器

停止容器

1
docker stop 容器名(or容器id)

启动容器

1
docker start 容器名(or容器id)

文件拷贝

将文件拷贝到容器中

1
docker cp 需要拷贝的文件or目录 容器名称:容器目录

文件从容器拷贝除来

1
docker cp 容器名称:容器目录 需要拷贝的文件or目录

目录挂载

创建容器时,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器

创建容器 添加-v参数 后面为 宿主机目录:容器目录

例如:

1
docker run -di -v /usr/local/myhtml:/var/local/myhtml --name=mycentos3 centos:7

如果你共享的是多级目录,可能会出现权限不足的提示

因为centos7中的安全模块selinux把权限禁掉了,我们需要添加参数--priviledged=true来解决挂载的目录没有权限问题

查看容器ip

可用以下命令查看容器运行各种参数

1
docker inspect 容器名称(容器id)

也可以直接执行下面命令输出IP地址

1
docker inspect --format='{{.Networksettings.IPAddress}}' 容器名称(容器id)

删除容器

1
docker rm 容器名称(容器id

docker compose

docker-compose cnblog

docker-compose 简书

docker-compose 菜鸟教程

参考资源

菜鸟教程

docker常用命令

docker-compose

docker-compose1

docker & docker-compose


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!