0%

Docker入门

赋予docker权限

1
2
3
4
5
vagrant@ubuntu-bionic:~$ sudo groupadd docker
groupadd: group 'docker' already exists
vagrant@ubuntu-bionic:~$ sudo gpasswd -a vagrant docker
Adding user vagrant to group docker
vagrant@ubuntu-bionic:~$ sudo service docker restart

退出vagrant在重新进入

docker基本命令

1
2
3
4
5
6
7
8
9
10
11
12
// 列举所有镜像
docker image ls
// 查看image build 历史
docker history <image id>
// 运行一个image
docker run <image id>
// 列举所有正在运行的容器
docker container ls
// 列举所有的容器
docker container ls -a
// 交互式运行运行(常驻运行)
docker run -it <image>

docker image 命令

1
2
docker images   (docker image ls缩写)
docker rmi <image id> (docker image rm <image id>缩写)//移除一个镜像

docker container命令

1
2
3
4
5
6
docker ps -a    (docker container ls -a缩写)
docker rm <image id> (docker container rm <image id>缩写) //删除一个容器
docker ps -aq //列举所有容器id
docker ps -f "status=exited" -q //列举所有已退出的容器
docker rm $(docker ps -aq)
docker rm $(docker ps -f "status=exited" -q)

avatar
avatar

build一个hello word image

生成hello-word程序

1
2
3
mkdir hello-word
cd hello-word
vim hello.c

hello.c内容

1
2
3
4
5
#include<stdio.h>
int main()
{
printf("hello word\n");
}
1
2
3
sudo apt-get install gcc
sudo apt-get install build-essential
gcc -static hello.c -o hello

avatar

编写Dockerfile

执行vim Dockerfile

1
2
3
FROM scratch
ADD hello /
CMD ["/hello"]

build命令

1
docker build -t <tag> <dir>

eg:

1
docker build -t pengshiliang/hello-word .

avatar

1
docker run pengshiliang/hello-word

出现hello word 即为正常build

发布

1
docker login
1
docker push pengshiliang/hello-word:latest

Container

  1. 通过image创建
  2. 在Image layer之上建立一个Cotainer layer
  3. 类面向对象:类和实例
  4. image复制存储和分发,container负责运行app