Giriş
Açıklaması şöyle.
Linux İçin Overlay File System
docker run komutunu çalıştırınca dosya sistemin olanların açıklaması şöyle. Alttatki tüm image'ların birleşimi olan boş bir üst dizin oluşturulur. Yapılan tüm işlemler bu üst dizinde gerçekleşir. Böylece alttaki image'ların dosyaları bozulmaz.
Örnek
Şöyle yaparız.
-d seçeneği
detached anlamına gelir. docker arka planda çalışır. Sunucu tarzı container'larda kullanılır
Örnek
-m seçeneği
Kullanılması istenilen bellek miktarını belirtilir.
Açıklaması şöyle. Yalıtılmış bir container başlatır. Başlatılan container'i görmek için "docker ps" komutu kullanılabilir.
Açıklaması şöyle. Belirtilen isme sahip image dosyasını çalıştırır. Eğer container isim belirtilmezse rastgele bir isim verilir.
Docker runs processes in isolated containers. A container is a process which runs on a host. The host may be local or remote. When an operator executes docker run, the container process that runs is isolated in that it has its own file system, its own networking, and its own isolated process tree separate from the host.
Container İçinde Komut Çalıştırmak
Şöyle yaparız
docker run ... mycommand
Eğer birden fazla komut çalıştırmak istersek şöyle yaparız
>docker run ... mycommand && mycommand2
Container İsmi
When you use docker run ... a new container is created and started based on the image you provide inside the command. It is also assigned a random name (if you don't specify one). If this container exits, you can then use docker start name and start it again.
Söz Dizimi
Söz dizimi şöyledocker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Container Yaşam Döngüsü
Açıklaması şöyle. Process bitince container da kapatılır.The lifecycle of a Docker container is:Bu seçenek docker create + docket start Bileşimidir
- docker run imagename -> create container x from image imagename
- docker exec x ls -> execute command ls in running container x
- docker stop x -> stop container (but still visible in docker container ls -a)
- docker start x -> restart container x
- docker stop x -> stop container xagain
- docker rm x -> remove container x (now also ls -a won't show it)
Açıklaması şöyle.
The command docker run in fact executes two commands together: docker create and docker start.Açıklaması şöyle
... container oluşturmak için kullanılan docker create + docker start komutlarının her ikisini birlikte gerçekleştiren komuttur. Ayrıca run komutu docker attach komutunu da üstlendiğinden dolayı uygulamanın çıktısını da görebiliriz.docker start: start one or more stopped containersdocker create: create a new containerdocker attach: attach local standard input, output, and error streams to a running container
docker run komutunu çalıştırınca dosya sistemin olanların açıklaması şöyle. Alttatki tüm image'ların birleşimi olan boş bir üst dizin oluşturulur. Yapılan tüm işlemler bu üst dizinde gerçekleşir. Böylece alttaki image'ların dosyaları bozulmaz.
At high level, docker downloads the tarballs for the image, it unpacks each layer into a separate directory and then tells the overlay filesystem to combine them all together together with an empty upper directory that the container will write its changes to it.Bu yüzden image'lar farklı farklı üst image'lar ile paylaşılabilir. Açıklaması şöyle.
When you change, create or delete files in the container, the changes are going to be stored in this empty directory. When the container exits, docker cleans up the folder - that is why the changes you make in the container do not persist.
This way to use the overlay filesystem allows hosts to cache docker images effectively. For example, if you define two images, they can both use the same layers. No need to download multiple times or to have many copies on the disk!--cpus seçeneği - İşlemci sayısını belirtir.
Örnek
Şöyle yaparız.
docker run -it --cpus 2 -v ${PWD}:/app
--workdir /app adoptopenjdk/openjdk11 java CommonPoolTest.java
--cpuset-cpus seçeneği
Örnek
Şöyle yaparız
docker run -d --cpuset-cpus 0-1 --name containerName mongo
detached anlamına gelir. docker arka planda çalışır. Sunucu tarzı container'larda kullanılır
Örnek
Şöyle yaparız
Şöyle yaparız.
Environment anlamına gelir. Söz dizimi şöylee
docker run -p 6379:6379 --name some-redis -d redis
ÖrnekŞöyle yaparız.
docker run -d -p 6033:3306 --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=root"
--env="MYSQL_PASSWORD=root" --env="MYSQL_DATABASE=book_manager" mysql
-e seçeneğiEnvironment anlamına gelir. Söz dizimi şöylee
$ docker run -e {environmentName}="{environmentValue}"
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
docker run -p 10.70.49.75:3305:3306/tcp -e MYSQL_ROOT_PASSWORD=0523 mysql
--link seçeneği - KullanmayınLinking is a legacy feature. Please use "user defined networks":
Using "user defined networks", you have an "internal name resolution" at your disposal (somewhat like domain name resolution when visiting websites). You can use the names of the container that you want to refer to, in order to resolve the IP addresses of containers, as long as they are running on the same "user defined network". With this, you can resolve the IP address of the rabbitmq container with its name, within other containers, on the same network.
All containters on the same "user defined network" will have network connectivity. There is no need for "legacy linking".
-it seçeneği - tty verir
Açıklaması şöyle
When you execute the command docker run -it ubuntu ls /, it creates a new container, runs the specified command ls / and gives u an interactive tty to the docker container using the -i and -t flag.
Örnek
Şöyle yaparız. Container ismi some-redis olur. -it ile redis-cli komutunun çıktısını görürüz.docker exec -it some-redis sh -c "redis-cli"
Kullanılması istenilen bellek miktarını belirtilir.
Örnek
Şöyle yaparız.
Container'a isim verir.
Örnek
Şöyle yaparız
Docker Networking yazısına taşıdım
Şöyle yaparız.
docker run -m 512m openjdk:11-jre java -XX:+PrintFlagsFinal -version
--name seçeneğiContainer'a isim verir.
Örnek
Şöyle yaparız
docker run --rm -d --network host --name activemq temp-activemq:5.16.0
-network seçeneğiDocker Networking yazısına taşıdım
-p seçeneği
Docker Networking yazısına taşıdım
--rm seçeneği
Container'dan çıkınca remove edilir
Örnek
Şöyle yaparız.
docker run --rm -ti -p 8888:8888 kurento/kurento-media-server-dev:latest
--volume seçeneği
Bind mount a volume anlamına gelir. Host makinemdeki bir dizini docker ile paylaşmak içindir. Genellikle "$PWD":DockerDizini şeklinde kullanılır.
Örnek
Örnek
Şöyle yaparız.
docker run --rm --name run -v "$(pwd)":/usr/src/mymaven
-w /usr/src/mymaven svenruppert/adopt:1.12.0-1 java -jar target/myapp.jar
-w seçeneği
Şöyle yaparız. Container içinde mv komutu clean ve install parameterleri ile çalıştırılır.
docker run
-it --rm --name my-maven-project
-v /var/www/html/Recommandation:/usr/src/mymaven
-p 88:88
-w /usr/src/mymaven maven:latest
mvn clean install
Çıktı Almak
docker çıktısını bilgisayarımda saklamak
İsmi centos olan image'ı çalıştırmak için şöyle yaparız. centos kendi içindeki cat komutunu çalıştırır. Çıktı benim bilgisayarımdaki asdf dosyasına yazılır.
docker run centos cat /etc/hosts > asdf
docker komut çıktısını docker içinde saklamak
Şöyle yaparız.docker run centos sh -c 'cat /etc/hosts > /tmp/asdf '
Hiç yorum yok:
Yorum Gönder