Это старая версия документа.
# apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common # curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - # add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" # apt update # apt install docker-ce
# systemctl status docker # docker info # docker run hello-world
# docker images # docker ps -a # docker container ls -a # docker rm $(docker ps -aq) # docker rm $(docker ps -q -f status=exited) # docker rmi hello-world
server# docker run -it --name webd --hostname webd debian bash webd# apt update && apt install inetutils-inetd file procps nano
webd/# cat start.sh
#!/bin/sh /etc/init.d/inetutils-inetd start /bin/bash
Ctrl+D
server# docker diff webd server# docker start webd server# docker attach webd root@webd:/# chmod +x start.sh
Ctrl+D
server# docker commit webd test/webd
server# mkdir /root/webd/ && cd /root/webd/ server# mv /usr/local/sbin/webd . server# ###tar -cvzf www.tgz -C /var/ www/ server# cat start.sh ...см. выше... server# cat Dockerfile
FROM debian:buster RUN apt-get update && apt-get install -y inetutils-inetd file && echo 'www stream tcp nowait root /usr/local/sbin/webd webd' > /etc/inetd.conf COPY start.sh / COPY webd /usr/local/sbin/webd ### ADD www.tgz /var/ ENTRYPOINT ["/start.sh"]
# docker build -t test/webd .
server# docker run --name webd01 --hostname webd01 --rm -itd -v /var/www/:/var/www/ -p 8000:80 test/webd /start.sh или, если задан entrypoint server# docker run --name webd01 --hostname webd01 --rm -itd -v /var/www/:/var/www/ -p 8000:80 test/webd server# docker inspect webd01 server# docker top webd01 server# wget -qO - http://172.17.0.2/index.html server# wget -qO - http://localhost:8000/index.html server# docker attach webd01 webd01# ps ax Ctrl+P, Q(still holding Ctrl) server# docker stop webd01
# docker search sftp # chown -R 10001 /var/www # docker run --name sftp01 --rm -v /var/www:/home/user1/www -p 2222:22 -d atmoz/sftp user1:password1:10001 # docker exec -it sftp01 bash # docker top sftp01
docker.corp14.un:~/cowsay# cat Dockerfile
FROM debian:buster RUN apt update && apt install -y cowsay fortune fortunes-ru locales dialog && echo 'ru_RU.UTF-8 UTF-8' > /etc/locale.gen && locale-gen ENV LANG ru_RU.UTF-8 COPY entrypoint.sh / ENTRYPOINT ["/entrypoint.sh"]
docker.corp14.un:~/cowsay# cat entrypoint.sh
#!/bin/bash /usr/games/fortune | /usr/games/cowsay
# docker search debian # docker pull debian # docker images # docker commit debian_cont_01 debian_img_01 # docker rmi debian_img_01
# docker create -i -t --name debian_cont_01 debian # docker ps -a # docker container ls -a # docker update --restart=always debian_cont_01 # docker start debian_cont_01 # docker ps # docker container ls # docker inspect debian_cont_01 # docker top debian_cont_01 # docker attach debian_cont_01 :/# apt update :/# apt install iputils-ping :/# ping -c1 ya.ru Ctrl+P, Q(still holding Ctrl) # docker stop debian_cont_01 # docker rm debian_cont_01 # docker rm $(docker ps -aq)
# docker network ls # docker network create --subnet=192.168.200+X.0/24 corpX_dmz # docker run -h mail.corpX.un --net corpX_dmz --ip 192.168.200+X.10 -i -t --name debian_cont_01 debian # docker network inspect corpX_dmz
Использование bridge
Использование nat/dnat
# ip addr add 172.16.1.100+X dev eth2 # iptables -t nat -A POSTROUTING -o eth2 -s 192.168.100+X.10 -j SNAT --to-source 172.16.1.100+X # iptables -t nat -A PREROUTING -i eth2 --destination 172.16.1.100+X -j DNAT --to-destination 192.168.100+X.10
nodeN# cat haresources
node1.corpX.un drbddisk Filesystem::/dev/drbd0::/disk2::ext4 docker