Self-Paced Training - Docker Fundamentals

Posted C.P.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Self-Paced Training - Docker Fundamentals相关的知识,希望对你有一定的参考价值。

Agenda-

Building Images

Dockerfile

Managing Images and Containers

Distributing Images on Docker Hub

Docker Volumes

Basic Container networking

Docker in continuous integration

 

Build New Image

  1. Create a container from an Ubuntu image and run a bash terminal: docker run -i -t ubuntu:14.04 /bin/bash
  2. Inside the container, install curl: apt-get install curl
  3. Exit the container terminal
  4. Run docker ps -a and take note of your container ID
  5. Save the container as a new image. For the repository name use <yourname>/curl. Tag the image as 1.0: docker commit <container ID> <yourname>/curl:1.0
  6. Run docker images and verify that you can see your new image

 

Use New Image

  1. Create a container using the new image you created in the previous exercise. Run /bin/bash as the process to get terminal access: docker run -i -t <yourname>/curl:1.0 /bin/bash
  2. Verify that curl is installed: which curl 

 

Dockerfile Instructions

Instructions specify what to do when building the image

FROM instruction specifies what the base image should be

RUN instruction specifies a command to execute

 

#Example of a comment

FROm ubuntu:14.04

RUN apt-get install vim

RUN apt-get install curl

 

Docker Build

docker build [options] [path]

Common option to tag the build: docker build -t [repository:tag] [path]

 

docker build -t johnnytu/myimage:1.0 .

docker build -t johnnytu/myimage:1.0 myproject

 

Build from Dockerfile

  1. In your home directory, create a folder called test
  2. In the test folder, create a file called “Dockerfile”
  3. In the file, specify to use Ubuntu 14.04 as the base image: FROM ubuntu:14.04
  4. Write an instruction to install curl and vim after an apt-get update: RUN apt-get update && apt-get install -y curl vim
  5. Build an image from the Dockerfile. Give it the repository <yourname>/textimage and tag it as 1.0: docker build -t johnnytu/textimage:1.0 .
  6. Create a container using your newly built image and verify that curl and vim are installed

 

Try CMD

  1. Go into the test folder and open your Dockerfile from the previous exercise
  2. Add the following line to the end: CMD ping 127.0.0.1 -c 30
  3. Build the image: docker build -t <yourname>/textimage:1.1 .
  4. Execute a container from the image and observe the output: docker run <yourname>/testimage:1.1
  5. Execute another container from the image and specify the echo command: docker run <yourname>/textimage:1.1 echo “hello world”
  6. Observe how the container argument overrides the CMD instruction

 

Push to Docker Hub

  1. Login to your Docker Hub account
  2. Create a new public repository called “testexample”
  3. Tag your local image to give it the same repo name as the repository you created on Docker Hub: docker tag <yourname>/testimage:1.1 <yourname>/testexample:1.1
  4. Push the new image to Docker Hub: docker push <yourname>/testexample:1.1
  5. Go to your Docker Hub repository and check for the tag

 

Mount a Volume

Volumes are mounted when creating or executing a container

Can be mapped to a host directory

Volume paths specified must be absolute

 

Execute a new container and mount the folder /myvolume into its file system

docker run -d -P -v /muvolume nginx:1.7

 

Execute a new container and map the /data/src folder from the host into the /test/src folder in the container

docker run -i -t -v /data/src:/test/src nginx:1.7

 

Create and test a Volume

  1. Execute a new container and initialise a volume at /www/website. Run a bash terminal as your container process. docker run -i -t -V /www/website ubuntu:14.04 bash
  2. Inside the container, verify that you can get to /www/website
  3. Create a file inside the /www/website folder
  4. Exit the container
  5. Commit the updated container as a new image called test and tag it as 1.0. docker commit <container ID> test:1.0
  6. Execute a new container with your test image and go into it’s bash shell. docker run -i -t test:1.0 bash
  7. Verify that the /www/website folder exists and the there are no files inside

 

EXPOSE net work port

 

Create a Link

  1. Create the source container first. docker run -d —name database postgres
  2. Create the recipient container and use the —link option. docker run -d -P —name website —link database:db nginx

以上是关于Self-Paced Training - Docker Fundamentals的主要内容,如果未能解决你的问题,请参考以下文章

Self-Paced Training - Introduction to Docker

每日一读Self-Paced Network Embedding

Java实现文件点击没反应

[WeChall] Training: Encodings I (Training, Encoding)

[WeChall] Training: MySQL I (MySQL, Exploit, Training)

WeChall_Prime Factory (Training, Math)Training: WWW-Robots (HTTP, Training)