参考https://www.runoob.com/docker/docker-dockerfile.html
刚安装需要登录
登录docker login
拉取镜像文件
sudo docker pull ubuntu:16.04
查看本地镜像信息
sudo docker images
删除镜像文件
sudo docker rmi ubuntu:16.04
容器
创建容器
-i: 交互式操作。
-t: 终端。
-d选项: 后台运行
–name 容器名字
ubuntu:16.04: ubuntu:16.04镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
sudo docker run -it --name ubuntu16 ubuntu:16.04 /bin/bash
退出前台运行的docker
exit
查看容器的信息
docker ps -a
启动一个停止的容器
sudo docker start ubuntu-test ubuntu-test为容器名字也可以是容器ID(用docker ps -a 查看)
停止一个容器
sudo docker stop ubuntu-test
重启
docker restart <容器 ID>
进入容器(也可以用docker attach 1e560fca3906 当退出的时docker 会停止)
sudo docker exec -it ubuntu16 /bin/bash 退出的时候docker 后台运行
docker 快照
sudo docker export ubuntu16 > ~/Desktop/ubuntu16.tar 导出
sudo cat ~/Desktop/ubuntu16.tar | sudo docker import - ubuntu:16 导入成镜像
删除容器
sudo docker rm -f sweet_swirles
清除所有停止的容器
sudo docker container prune
容器端口与本地端口绑定
sudo docker run -it -p 5000:5000 --name ubuntu-test ubuntu:16.04 /bin/bash
查看容器运行的进程
sudo docker port ubuntu-test
查看docker网络日志
sudo docker logs -f 3babc1b31657
本地文件复制到docker 上
sudo docker cp ~/Desktop/11.png ubuntu-test:/
快速创建容器
目录下写一个Dockerfile
FROM ubuntu:16.04
RUN apt install python\
&&......
如
FROM ubuntu:16.04
RUN sed -i "s/http:\/\/archive.ubuntu.com/http:\/\/mirrors.aliyun.com/g" /etc/apt/sources.list
RUN apt-get update && apt-get -y dist-upgrade
RUN apt-get install -y lib32z1 xinetd build-essential ssh
RUN mkdir /root/.ssh/ && chmod -R 700 /root/.ssh/
RUN sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbf3BmsMcE8H0zWImI8wGzrRc9uX4ZpX8Arxt+Z5t/b3S4DUXHfcvpnogVgOyux7NQDiKKYKbeu/234UQiysqoYNRMFnyy3vq4Biu7RlBizSCbJ3nDBrspmwNmkt4eY3ze8dyPJo7kt8fn8bBpo/W3KAkhJ8xcuKs1sfnOaOcU0x5HvFQN+3xAQkaXCcQme31SaW3A5F5/4tz3DQZPw/pxa0kCCLseATn01+GZ15iYDq04BxzqtI7RAQz2qWc5NscYDGrbunm+Hxrus/NsC0b+ZY051K9vpCGgsIDFkKTCFxuLO9RpqxpEkaoksQ6bPddV2IolZ8mqtWN/wtvoRdHL" >> /root/.ssh/authorized_keys
RUN chmod 600 /root/.ssh/authorized_keys
RUN groupadd ciscn && \
useradd -g ciscn ciscn -m && \
password=$(openssl passwd -1 -salt 'abcdefg' '123456') && \
sed -i 's/^ciscn:!/ciscn:'$password'/g' /etc/shadow
RUN useradd -m ctf
COPY ./flag /flag
COPY ./pwn /pwn/pwn
COPY ./ctf.xinetd /etc/xinetd.d/ctf
RUN chown root:ctf /pwn/pwn && chmod 750 /pwn/pwn
RUN echo 'ctf - nproc 1500' >>/etc/security/limits.conf
CMD exec /bin/bash -c "/etc/init.d/xinetd start; trap : TERM INT; sleep infinity & wait"
EXPOSE 8888