docker命令

docker 安装

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL http://mirrors.[aliyun.com/docker-ce/linux/ubuntu/gpg](http://aliyun.com/docker-ce/linux/ubuntu/gpg) | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] [http://mirrors.aliyun.com/docker-ce/linux/ubuntu](http://mirrors.aliyun.com/docker-ce/linux/ubuntu) $(lsb_release -cs) stable"

sudo apt-get -y update

sudo apt-get -y install docker-ce

docker version
有时候安装失败,需要确认一下系统版本 i386 似乎不支持不了
dpkg --print-architecture

amd64 或者 i386

docker-compose 安装

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose version

mkdir /data

mkdir /data/docker

mkdir /data/docker-data

docker network create my_net

docker & docker-compose 完整安装命令

sudo apt-get update && 

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common && 

curl -fsSL http://mirrors.[aliyun.com/docker-ce/linux/ubuntu/gpg](http://aliyun.com/docker-ce/linux/ubuntu/gpg) | sudo apt-key add - && 

sudo add-apt-repository "deb [arch=amd64] [http://mirrors.aliyun.com/docker-ce/linux/ubuntu](http://mirrors.aliyun.com/docker-ce/linux/ubuntu) $(lsb_release -cs) stable" && 

sudo apt-get -y update && 

sudo apt-get -y install docker-ce && 

curl -L [https://github.com/docker/compose/releases/download/](https://github.com/docker/compose/releases/download/)1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && 

chmod +x /usr/local/bin/docker-compose && 

mkdir /data && 

mkdir /data/docker && 

mkdir /data/docker-data && 

docker network create my_net && 

docker version && 

docker-compose version

docker 更换阿里云镜像源

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{
  "registry-mirrors": ["[https://kmvocfqq.mirror.aliyuncs.com](https://kmvocfqq.mirror.aliyuncs.com/)"]
}

EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker-compose 测试配置

version: '2'
services:

  mysql:
    image: mysql:8.0.13
    hostname: dbMysql
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - /data/docker-data/volumes/mysqldb:/var/lib/mysql:rw
      - /data/docker-data/sql:/opt/sql
    ports:
      - "9100:3306"

  mongo:
    image: mongo:3.4
    hostname: dbMongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      # 注意此处使用了volumes,重新开启账号密码会写不进admin导致无法登陆
      MONGO_INITDB_ROOT_PASSWORD: 123456
    ports:
      - 9101:27017
    volumes:
      - /data/docker-data/volumes/mongodb:/data/db:rw
      - /data/docker-data/mongoData:/opt/mongoData:rw

  redis:
    image: redis:4.0.11-alpine
    hostname: dbRedis
    restart: always
    command: redis-server --requirepass 123456
    # 或者使用配置启动 redis-server /usr/local/etc/redis/redis.conf
    volumes:
      - /data/docker-data/volumes/redis/redis.conf:/usr/local/etc/redis/redis.conf
      - /data/docker-data/volumes/redis/db:/data
    ports:
      - 9102:6379

networks:
  my_net:
    external: true

docker 常用命令

docker ps       查看启动的容器列表
docker ps -a    查看所有容器列表
docker images   查看所有镜像
docker rm $(docker ps -a -q)            删除所有容器,需要先停止
docker rmi $(docker images -q)          删除所有镜像
docker exec -it apollo_1 bash           进入容器apollo_1
docker exec -it my_docker sh            进入 apline 构建的镜像
docker exec -it db_mongo_1 mongo        直接以mongo命令进入容器
docker exec -it db_redis_1 redis-cli    直接以redis-cli命令进入容器
docker rmi $(docker images |awk '{if($2=="<none>")  print $3}') 删除标签为none的镜像
docker stats    实时监控容器的信息 
docker stats --no-stream    只输出当前的信息
# 需要进入到包含有 docker-compose.xml的文件目录下执行
docker-compose up           启动
docker-compose down         停止
docker-compose up -d        守护模式启动
# 复制宿主机的 insert.sql文件到 db_mysql_1 容器的目录 /opt/sql/
docker cp /data/insert.sql db_mysql_1:/opt/sql/

# 复制 db_mysql_1 容器的目录 /opt/sql/insert.sql 到 宿主机的 /data
docker cp db_mysql_1:/opt/sql/ /data/
# 查看最后十条记录,并实时更新
docker logs -f --tail 10 sedirea_weekly_1

# 从某个日期开始,查看最后一百条记录,并实时更新
docker logs -f -t --since="2018-11-20T13:50:16.184406342Z" --tail=100 apollo_admin_1
# 安装相关工具  
apt-get update                      (更新源)
apt-get install inetutils-ping      (18.04安装ping)
apt-get install iputils-ping        (旧版安装ping)
apt-get install net-tools           (安装ifconfig)

docker-compose 常用命令

docker-compose up -d nginx                     构建建启动nignx容器

docker-compose exec nginx bash            登录到nginx容器中

docker-compose down                              删除所有nginx容器,镜像

docker-compose ps                                   显示所有容器

docker-compose restart nginx                   重新启动nginx容器

docker-compose run --no-deps --rm php-fpm php -v  在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器

docker-compose build nginx                     构建镜像 。        

docker-compose build --no-cache nginx   不带缓存的构建。

docker-compose logs  nginx                     查看nginx的日志 

docker-compose logs -f nginx                   查看nginx的实时日志

docker-compose config  -q                        验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 

docker-compose events --json nginx       以json的形式输出nginx的docker日志

docker-compose pause nginx                 暂停nignx容器

docker-compose unpause nginx             恢复ningx容器

docker-compose rm nginx                       删除容器(删除前必须关闭容器)

docker-compose stop nginx                    停止nignx容器

docker-compose start nginx                    启动nignx容器