Docker使用指南

1. 查看docker服务器是否正常

sudo docker info

2. 运行容器

sudo docker run -i -t ubuntu /bin/bash
sudo docker run -i -t 镜像名称 命令代码

3. 使用容器

# 查看系统中存在的容器
docker ps -a

4. 容器命名

sudo docker run --name litianbo_test -i -t ubuntu /bin/bash
sudo docker run --name 容器名称 -i -t 镜像名称 命令代码

5. 启动已停止的容器

# 根据容器名称启动
sudo docker start litianbo_test
# 根据容器id启动
sudo docker start 41225bc38698

6. 进行容器内部命令行

sudo docker attach litianbo_test

7. 创建守护式容器

sudo docker run --name litianbo_test -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

8. 查看容器日志

sudo docker logs litianbo_test
sudo docker logs -f litianbo_test

9. 查看容器内进程

sudo docker top litianbo_test

10. 在容器内运行进程

sudo docker exec -it litianbo_test /bin/bash

11. 停止守护式容器

sudo docker stop litianbo_test

12. 自动重启容器

sudo docker run --restart=always --name litianbo_test -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

13. 查看容器详细信息

sudo docker inspect litianbo_test

14. 删除容器

sudo docker rm litianbo_test

15. 查看镜像列表

sudo docker images

16. 拉取镜像

sudo docker pull ubuntu

# 运行时指定tag
sudo docker run -it ubuntu:16.04 /bin/bash

# 对于一个仓库而言,完整的格式如下:[用户名称/]仓库名称:tag

17. 查找镜像

sudo docker search keywords

18. 构建镜像

  1. 使用docker commit构建
  2. 使用docker build和Dockerfile文件来构建
    # 创建docker hub账号
    # 通过命令在本地绑定对应的Docker Hub账号
    sudo docker login


    # commit
    # 根据某个镜像创建一个容器
    # 对该容器进行一些修改
    # 提交该容器并生成一个新的镜像

    sudo docker run -it ubuntu /bin/bash

    root@b3f9427a5039:/# apt-get -yqq update
    root@b3f9427a5039:/# apt-get -y install apache2
    root@b3f9427a5039:/# exit

    sudo docker commit b3f9427a5039 ltb/apache2
    sudo docker images

    # -m=”message” 可以用于对提交的镜像添加一些文本描述
    # –author=”person” 可以用于添加提交人信息
    # 提交时,我们可以设置tag

    sudo docker commit -m="install apache" --author="ltb" b3f9427a5039 ltb/apache:v1

    # 查看镜像详细信息
    sudo inspect ltb/apache2:v1

    # 用心镜像创建容器
    sudo docker run -it ltb/apache2:v1 /bin/bash


    # dockerfile
    # 先创建一个工作目录,并在目录中创建一个dockerfile文件
    mkdir workdir
    cd ./workdir
    touch dockerfile

    # 编辑dockerfile文件
    FROM ubuntu:14.04
    MAINTAINER Wangzhe0912 "Wangzhe0912@tju.edu.cn"
    RUN apt-get update
    RUN apt-get install -y nginx
    RUN echo "Hi, I am your contrainer" > /usr/share/nginx/html/index.html
    EXPOSE 80

    # 基于dockerfile构建新镜像
    # 写完dockerfile文件后,可以执行docker build命令生成一个新的镜像

    # 在本地当前目录下寻找dockerfile文件
    docker build -t="ltb/nginx:v1"` .

    # 指定git仓库寻找dockfile文件
    docker build -t="wangzhe0912/nginx:v1"` git@github.com:wangzhe0912/docker_web

    # dockerfile构建缓存
    # 希望强制忽略缓存时,可以额外添加--no-cache参数进行设置
    sudo docker build --no-cache -t="ltb/nginx:v1"

    # 基于构建缓存的dockfile模板
    # 添加了一行环境变量ENV
    FROM ubuntu:14.04
    MAINTAINER Wangzhe0912 "Wangzhe0912@tju.edu.cn"
    ENV REFRESHED_AT 2018-01-28
    RUN apt-get update
    ...

    # 查看新镜像构建过程
    docker history image_name/id

    # 从新镜像启动容器
    # -d表示后台程序进行运行
    # -p 80表示运行时公开80端口给宿主机
    docker run -d -p 80 --name ltb_nginx ltb/nginx:v1 nginx -g "daemon off;"

    # 端口查询
    docker port ltb_nginx 80

    # 访问地址
    curl localhost:32768

19. 将镜像推送至Docker Hub

sudo docker push ltb/nginx

20. 删除镜像

sudo docker rmi 镜像名称

21.登录DockerHub

sudo docker login
# 输入账号密码

22.Docker免sudo操作

sudo groupadd docker
cat /ect/group
sudo gpasswd -a ${USER} docker
newgrp - docker

23.管理网络

# 创建自定义网络
docker network create iccd

# 删除自定义网络
docker network rm iccd
Author: pangzibo243
Link: https://litianbo243.github.io/2019/08/05/docker使用指南/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
支付宝打赏
微信打赏