Docker 命令
list of container existed
docker container ls
list of running containers
docker ps
list of all containers
docker ps -a
enter container
docker exec -it d27bd3008ad9 /bin/bash
stop all running containers
docker stop $(docker ps -q)
remove all containers
docker rm $(docker ps -aq)
stop and remove containers
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
清空docker
docker system prune –all
Docker-Orientation, Containers
1.Orientation
## List Docker CLI commands
docker
docker container –help
## Display Docker version and info
docker –version
docker version
docker info
## Execute Docker image
docker run hello-world
## List Docker image
docker image ls
## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls -all
docker container ls -aq
2.Containers
The portable image is define by something called a Dockerfile.
Define a container with Dockerfile
# Use an official Python runtime as a parent image FROM python:2.7-slim # Set the working directory to /app WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app # Install any needed packages specified in requirements.txt RUN pip install --trusted-host pypi.python.org -r requirements.txt # Make port 80 available to the world outside this container EXPOSE 80 # Define environment variable ENV NAME World # Run app.py when the container launches CMD ["python", "app.py"]
Build the app
Create a Docker image. Use -t if you want to use the shorter option.
docker build --tag=friendlyhello .
Build image in docer
docker image ls
Note how the tag defaulted to latest. The full syntax for the tag option would be something like –tag=friendlyhello:v0.0.1.
Run the app
Mapping your machine’s port 4000 to the container’s published port 80 using -p:
docker run -p 4000:80 friendlyhello
Stop, remove the container
docker container stop <container_id> docker container rm <container_id>
Share your image
A registry is a collection of repositories, and a repository is a collection of images.
docker build -t friendlyhello . # Create image using this directory's Dockerfile docker run -p 4000:80 friendlyhello # Run "friendlyname" mapping port 4000 to 80 docker run -d -p 4000:80 friendlyhello # Same thing, but in detached mode docker container ls # List all running containers docker container ls -a # List all containers, even those not running docker container stop <hash> # Gracefully stop the specified container docker container kill <hash> # Force shutdown of the specified container docker container rm <hash> # Remove specified container from this machine docker container rm $(docker container ls -a -q) # Remove all containers docker image ls -a # List all images on this machine docker image rm <image id> # Remove specified image from this machine docker image rm $(docker image ls -a -q) # Remove all images from this machine docker login # Log in this CLI session using your Docker credentials docker tag <image> username/repository:tag # Tag <image> for upload to registry docker push username/repository:tag # Upload tagged image to registry docker run username/repository:tag # Run image from a registry
Docker-Services
3.Services
About services
In a distributed application, different pieces of the app are called “services”.
Services are really just “containers in production.” A service only runs one image, but it codifies the way that image runs—what ports it should use, how many replicas of the container should run so the service has the capacity it needs, and so on. Scaling a service changes the number of container instances running that piece of software, assigning more computing resources to the service in the process.
docker-compose.yml
version: "3" service: web: image: jieanyang/get-started:v0.0.1 deploy: replicas: 5 resources: limits: cpus: "0.1" # 10% of the cpu memory: 50M # RAM restart_policy: condition: on-failure ports: - "4000:80" networks: - webnet networks: webnet:
Run your new load-balanced app
Before we can use the docker stack deploy command we first run:
docker swarm init
Now let’s run it. You need to give your app a name. It is set to getstartedlab:
docker stack deploy -c docker-compose.yml getstartedlab
Get the service ID for the one service in our application:
docker service ls
The command lets you view all services associated with the getstartedlab stack:
docker stack services getstartedlab
A single container running in a service is called a task. List the tasks for your service:
docker service ps getstartedlab_web
Either way, the container ID changes, demonstrating the load-balancing; with each request, one of the 5 tasks is chosen, in a round-robin fashion, to respond.
Scale the app
You can scale the app by changing the replicas value in docker-compose.yml, saving the change, and re-running the docker stack deploy command:
docker stack deploy -c docker-compose.yml getstartedlab
Docker performs an in-place update, no need to tear the stack down first or kill any containers.
Take down the app and the swarm
Take the app down
docker stack rm getstartedlab
Take down the swarm
docker swarm leave --force
docker stack ls # List stacks or apps docker stack deploy -c <composefile> <appname> # Run the specified Compose file docker service ls # List running services associated with an app docker service ps <service> # List tasks associated with an app docker inspect <task or container> # Inspect task or container docker container ls -q # List container IDs docker stack rm <appname> # Tear down an application docker swarm leave --force # Take down a single node swarm from the manager
4.Swarms
?
引用:
Docker Documentation https://docs.docker.com/
Docker Compose 配置文件详解 https://www.jianshu.com/p/2217cfed29d7
控制台,终端,tty,shell等概念的区别 http://minixbeta.github.io/%E5%B7%A5%E5%85%B7/2014/02/28/terminal-shell.html
Docker在windows下无法开启伪终端解决方法 https://blog.csdn.net/Bearox/article/details/49281221
Windows 10下Docker使用经验谈 https://www.cnblogs.com/daxnet/p/7719574.html