Docker Introduction
Repository
Section titled “Repository”docker pull NAME:[TAG]docker pull ubuntu:14.04
registry.hub.docker.comdocker pull hub.c.163.com/public/ubuntu:14.04
docker push docker tag test:latest user/test:latest docker push user/test:latestdocker search docker search ubuntudocker imagesdocker image lsdocker tag ubuntu:latest myubuntu:latestdocker inspect ubuntu:14.04 docker inspect ubuntu:14.04 \{\{.Architecture\}\}docker history ubuntu:14.04docker search docker search --automated -s 3 nginxdocker rmi [IMAGE] docker rmi myubuntu:latest docker rmi a21c0840213eCreate Image
Section titled “Create Image”docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] dokcer commit -m "add a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1docker import [OPTIONS] file|URL| - [REPOSITORY[:TAG]] cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14:04docker save / docker load docker save -o ubuntu_14.04.tar ubuntu:14.04 docker load -- input ubuntu_14.04.tar docker load < ubuntu_14.04.tarContainer
Section titled “Container”docker create docker create -it ubuntu:latestdocker start docker start afdocker ps / docker ps -adocker run docker run ubuntu /bin/echo 'Hello world' docker run -it ubuntu:14.04 /bin/bash docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1;"docker logs docker logs ce5docker stop docker stop ce5docker attach docker run -itd ubuntu docker attach [CONTAINER]docker exec docker exec -it 243c32535da7 /bin/bash To have ctrl+c stop the container you must use -it To detach from the container you should use ctrl+pqdocker rm docker rm 2ae docker rm $(docker ps -aq)docker export docker export -o test_for_run.tar ce5docker import docker import test_for_run.tar = test/ubuntu:v1.0docker update docker update --restart=no container-nameNetwork
Section titled “Network”docker network create my-netdocker network rm my-netdocker create --name my-nginx \ --network my-net \ --publish 8080:80 \ nginx:latestdocker network disconnect my-net my-nginxData Management
Section titled “Data Management”Data Volume
Section titled “Data Volume”docker run -d -P web -v /webapp training/webapp python app.pydocker run -d -P web -v /src/webapp:/opt/webapp training/webapp python app.pydocker run -it --rm --name my-running-script -v "$PWD":/usr/src/app -w /usr/src/app node node test.jsData Volume Container
Section titled “Data Volume Container”docker run -it -v /dbdata --name dbdata ubuntudocker run -it --volumes-from dbdata --name db1 ubuntudocker run -it --volumes-from dbdata --name db2 ubuntuBackup
Section titled “Backup”docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdataRestore
Section titled “Restore”docker run -v /dbdata --name dbdata2 ubuntu /bin/bashdocker run --volumes-from dbdta2 -v $(pwd):/backup busybox tar xvf /backup/backup.tarCopy File
Section titled “Copy File”docker cp <containerId>:/usr/local/etc/php/conf.d/php.ini ~/moodle-docker/php/docker cp my-postgres.conf <containerId>:/usr/localDockerfile
Section titled “Dockerfile”docker build -t build/ubuntu-nodejs ./Jekyll
Section titled “Jekyll”docker run --rm --volume="$PWD:/srv/jekyll" -it jekyll/jekyll:3.8 jekyll builddocker run --rm --volume="$PWD:/usr/src/app" -w /usr/src/app -it node:11.14.0-alpine /bin/sh -c "npm install && npm run build && cp -r build ../server"sudo docker run --name jekyll-nginx -v $PWD:/usr/share/nginx/html:ro -d -p 80:80 nginxSwagger api
Section titled “Swagger api”docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate \ -i http://petstore.swagger.io/v2/swagger.json \ -l javascript \ -o /local/api-client
docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate \ -i /local/api.json \ -l javascript \ -o /local/out/javascript \ -c /local/javascript.configInstall docker
Section titled “Install docker”curl -fsSL https://get.docker.com -o get-docker.sh# DRY_RUN=1 sh ./get-docker.shsudo sh get-docker.shInstall docker on Ubuntu Server
Section titled “Install docker on Ubuntu Server”# Add Docker's official GPG key:sudo apt-get updatesudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-worldDocker User
Section titled “Docker User”- sudo groupadd docker
- sudo usermod -aG docker ${USER} / sudo gpasswd -a $USER docker
- su root / su ${USER} / newgrp docker
- sudo systemctl restart docker
Setup docker image mirror
Section titled “Setup docker image mirror”sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://{xxxxxxx}i.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart dockermongo in docker
Section titled “mongo in docker”- sudo docker run -d —name db -p 27017:27017 -v $(pwd)/mongo:/docker-entrypoint-initdb.d -e MONGO_INITDB_DATABASE=weapondb mongo mongod
- sudo docker run -d —name db -v $(pwd)/scripts/mongo:/docker-entrypoint-initdb.d -e MONGO_INITDB_DATABASE=weapondb mongo mongod
cannot access the network in ubuntu or ubuntu docker container
Section titled “cannot access the network in ubuntu or ubuntu docker container”- echo “nameserver 8.8.8.8” >> /etc/resolv.conf
- echo “search lan” >> /etc/resolv.conf
Next Cloud with Postgres in the docker
Section titled “Next Cloud with Postgres in the docker”docker network create --driver bridge nextcloud-netdocker run --name postgres -v /home/{{user}}/nextcloud-db:/var/lib/postgresql/data -e POSTGRES_PASSWORD={{password}} --network nextcloud-net -d postgres
docker run --name nextcloud -d -p 8080:80 -v /home/{{user}}/nextcloud:/var/www/html --network nextcloud-net nextcloud
sudo chown -R www-data:www-data /media/usbdrive
docker run --name nextcloud -d -p 8080:80 -v /media/usbdrive:/data --network nextcloud-net -v /home/pi/nextcloud:/var/www/html nextcloud