[关闭]
@gabe 2020-06-10T01:40:25.000000Z 字数 2289 阅读 724

docker 基础用法

未分类


docker,docker-compose 安装

  1. apt-get update
  2. apt-get -y install apt-transport-https ca-certificates curl software-properties-common
  3. curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
  4. add-apt-repository "deb [arch=amd64]
  5. http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  6. apt-get -y update
  7. apt-get -y install docker-ce
  8. docker run --rm hello-world

免sudo

  1. sudo gpasswd -a $USER docker
  2. newgrp docker

docker加速

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://dockerhub.azk8s.cn"]
  5. }
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker

上面添加的是微软的docker加速镜像,我们也可以添加阿里云的镜像加速器,需要注册阿里云,登陆https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors后可以看到的自己的镜像加速器

docker 常用命令

启动docker服务,使用service或者systemctl

  1. sudo service docker start

确认docker安装成功

  1. sudo docker info

查看本机已有的镜像

  1. sudo docker images

运行一个docker容器,-i -t代表一个可交互的容器,--name cnt_name是可选的,给容器起一直名字

  1. sudo docker run --name cnt_name -i -t ubuntu /bin/bash

在后台启动一个nginx容器

  1. sudo docker run --name cnt_name -d nginx

进入上面启动的容器中

  1. docker exec -i -t cnt_name bash

启动一个容器

  1. sudo docker start cnt_name

停止一个容器

  1. sudo docker stop cnt_name

attach到一个正在运行的容器

  1. sudo docker attach cnt_name

查看所有容器,-a所有,不加a只现实运行状态的容器

  1. sudo docker ps -a
  2. sudo docker ps -n 5 #显示最后5个容器

获取更多容器信息

  1. sudo docker inspect cnt_name

删除容器

  1. sudo docker rm cnt_name
  2. sudo docker rm `sudo docker ps -a -q` #删除所有容器,-q表示只返回容器ID

从docker hub 下载镜像

  1. sudo docker pull fedora:21

从dcoker hub 上查找镜像

  1. sudo docker search ubuntu

docker commit 创建镜像

先创建一个容器

  1. sudo docker run -i -t ubuntu /bin/bash

安装nginx

  1. apt-get -yqq update
  2. apt-get -y install nginx
  3. exit

查看容器ID

  1. sudo docker ps -l -q

提交该容器

  1. sudo docker commit 6689b00fa0d2 hankdai/nginx

查看刚提交的容器

  1. sudo docker inspect hankdai/nginx
  2. sudo docker push hankdai/nginx #推送到docker hub

docker-ui 图形化管理

可以尝试下使用图形界面下进行docker相关的管理,这里我们使用uifd/ui-for-docker

  1. docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker

访问http://localhost:9000

Dockerfile 构建镜像

创建我们的第一个Dockerfile

  1. mkdir php_docker_first
  2. cd php_docker_first

创建Dockerfile,内容如下

  1. FROM php:7.4-cli
  2. COPY . /usr/src/myapp
  3. WORKDIR /usr/src/myapp
  4. EXPOSE 8800
  5. CMD [ "php", "-S", "0.0.0.0:8800"]

在当前目录创建一个index.php文件

  1. <?php
  2. echo "hello docker!!";

生成镜像,这里需要登陆阿里云容器服务创建一个命名空间

  1. docker build . -t registry.cn-hangzhou.aliyuncs.com/gangbo/test_php:1.0

使用刚生成的镜像启动一个容器,设置8800映射8800

  1. sudo docker run -d -p 8800:8800 registry.cn-hangzhou.aliyuncs.com/gangbo/test_php:1.0

访问` http://localhost:8800

docker-compose 搭建nginx,php,laravel,mysql开发环境

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注