Docker的使用

不适合人类阅读,非常水的自我笔记

Posted by Eli0t on 2020-03-04

image-20200508222859444

安装kali所有的工具则运行 apt-get install kali-linux-all 直接一套带走,10G左右。

创建容器相关参数

1
2
3
4
5
6
7
8
9
10
docker run -d \
--rm \
-h ${ctf_name} \
-w /pwn --name ${ctf_name} \
-v $(pwd)/${ctf_name}:/ctf/work \
-p 23946:23946 \
--cap-add=SYS_PTRACE \
skysider/pwndocker
启动:
docker exec -it ${ctf_name} /bin/zsh

docker container update xxxxx+容器号 更新容器配置

–restart=always : docker 重启就打开此容器

–name :生成容器名称
–rm :exit 之后就销毁容器,不储存用户数据
-v :挂载本地文件夹到容器
-p :端口映射
-d :后台运行
-w /app

1
2
3
4
docker run -dp 3000:3000 \
-w /app -v ${PWD}:/app \
node:12-alpine \
sh -c "yarn install && yarn run dev"

sh -c "yarn install && yarn run dev"- 命令。我们正在使用sh(没有alpine bash)启动shell 并运行yarn install以安装所有依赖项,然后运行yarn run dev。如果查看package.json,我们将看到 dev 脚本正在启动 nodemon。

创建容器并挂载相关目录在主机上:

docker run -it -v /Users/ybm911/Documents/attach_docker_kali:/home/mac kali-linux/ybm_kali:1.0 /bin/bash
冒号前的是主机目录。

  • 启动容器:
    docker start XXXXXXXXX
  • 进入容器:
    docker attach XXXXXXXXX
    docker exec -it XXXXXXXX /bin/bash
  • 查看容器:
    docker ps -a
  • 删除容器:
    docker rm XXXXXXXX
  • 删除image:
    docker rmi XXXXXXXX
  • 容器生成镜像:
    docker commit -a "Eli0t"-m "kali_all" 6c80830ee487 kali-linux/Y_kali:1.0
  • 镜像导出:
    docker save XXXXXXXX > /root/lsf_jdk8.tar
  • 容器导出:
    docker export 9ff8e203b25e > docker20190123export.tar
  • 将容器在另一台机器导入:
    cat ./docker20190123export.tar | sudo docker import - dockertest:1.0

    简单普及一下,docker的save保存镜像(load与其对应),docker的export导出容器(import与其对应),但是两者load/import的时候都是生成镜像。

-a 作者名字
-m 说明
指的是tag

docker容器中使用Ctrl+D即可退出容器,但是这样会让容器停止运行。

如果想退出容器但又不想让容器停止,使用Ctrl+P+Q即可

Docker.raw 占用空间较大

最近电脑空间吃紧,经过查询之后,发现Docker.raw 文件特别大。
该文件为docker的逻辑磁盘的文件。属于预占用文件。
进入docker Preferences…,设置Disk image size

注意:调整会导致镜像与容器丢失。
其实我发现调了也没有卵用,重启一下 docker 又成了原来的大小

使用DockerFile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#在centos上安装nginx
FROM centos
#标明著作人的名称和邮箱
MAINTAINER jiabuli 649917837@qq.com
#测试一下网络环境
RUN ping -c 1 www.baidu.com
#安装nginx必要的一些软件
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
#把nginx安装包复制到/usr/src/目录下
ADD nginx-1.15.8.tar.gz /usr/src/
#切换到/usr/src/nginx-1.15.8编译并且安装nginx
RUN cd /usr/src/nginx-1.15.8 \
&& mkdir /usr/local/nginx \
&& ./configure --prefix=/usr/local/nginx && make && make install \
&& ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ \
&& nginx
#删除安装nginx安装目录
RUN rm -rf /usr/src/nginx-nginx-1.15.8
#对外暴露80端口
EXPOSE 80
#启动nginx
CMD ["nginx", "-g", "daemon off;"]

or

1
2
3
4
5
FROM node:12-alpine
WORKDIR /app
COPY . . # same as copy ./ /app/
RUN yarn install --production
CMD ["node", "/app/src/index.js"]

docker build -t getting-started .使用 Dockerfile 构建容器

其他 docker 命令

您可以使用查看日志docker logs -f xxxxxxxx

看完日志后,请按Ctrl+ 退出C

参考链接

https://blog.csdn.net/talkxin/article/details/83061973