docker笔记

#下载Docker官方源 [1]
cd /etc/yum.repos.d
wget https://download.docker.com/linux/centos/docker-ce.repo

#安装docker
CentOS7 下直接yum -y install docker

#启动docker,将docker设置为开机启动
systemctl start docker
systemctl enable docker

#查看运行中的容器
docker ps

#开启、关闭、kill容器
docker stop Name/ID
docker start Name/ID
docker kill Name/ID

#配置镜像加速
修改/etc/docker/daemon.json
{
    "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
如果docker已经启动要重启docker才会使加速配置生效
systemctl restart docker

#初始化镜像
docker pull docker.io/centos

#将指定的镜像实例化为容器
docker run -d -p 3307:3306 --name test_centos7 docker.io/centos:latest
  参数:
    -p        将容器端口映射成宿主机端口。格式:本机端口:容器端口
    --name    容器名称。
    -d        容器进入后台运行,我们在容器中执行操作完成并退出后容器不会结束运行。 [1]
    更多参数 [1]

#进入到创建的容器执行其他操作
    docker exec -ti test_centos7 /bin/bash
  参数:
    [1]
    
  进入容器后就可以像ssh登录服务器后一样执行其他操作,如运行yum安装软件、执行shell操作文件目录等
    
#容器开启或者关闭
docker stop test_centos7
docker start test_centos7

#查看容器的指定端口(如3306)对应本地机器的IP和端口号
docker port test_centos7 3306
#0.0.0.0:3307

#在下载镜像前搜索是否存在相关镜像
docker search centos
docker pull centos:7

#实例化容器时如果要映射多个端口到宿主机上可以指定多个-p参数
docker run -d -p 80:80 -p 2222:22 --name test_centos7 docker.io/centos

#如果容器中无法执行systemctl命令则需要在容器实例创建时执行/usr/sbin/init
docker run -d -p 80:80 -p 2222:22 --name test_centos7 docker.io/centos /usr/sbin/init

#查看已经建立的容器
docker ps -a

#将容器保存为镜像(后面的hash值通过docker ps -a命令查看) [1]
docker commit 861eea8a625e test/centos7-ssh:v0.1

#查看本地的镜像
docker images

#删除docker镜像
docker rmi test/centos7-ssh:v0.1

#将容器删除(注意:容器中的所有数据都将丢失,操作前请做好相关数据备份)
docker rm test_centos7

#将宿主机内的数据复制到容器中
docker cp /etc/yum.repos.d/ test_centos7:/etc/yum.repos.d/
docker cp /etc/localtime test_centos7:/etc/localtime

#查看容器IP
docker inspect test_centos7 | grep IPAddress

#通过Dockerfile文件制作镜像 [1] [2]
    1.新建一个目录:
        mkdir lnmp
        
    2.进入目录下新建Dockerfile文件,内容如下:
    
        ###############################
        # This my first nginx Dockerfile
        # Version 1.0
        
        # Base images 基础镜像
        FROM test/centos7-ssh:v0.1
        
        #ENV 设置环境变量
        ENV PATH /usr/local/php_565/bin:$PATH
        
        #EXPOSE 80
        #EXPOSE 443
        #EXPOSE 8080
        
        #CMD 运行以下命令
        CMD ["/usr/sbin/init"]
        ###############################

#使用Dockerfile制作镜像
docker build -t test/centos7-ssh:v0.2 .


#docker-compose进入某个容器
docker-compose exec php bash

#主机意外关机后进入关机前的docker实例
docker ps -a 看容器名 
docker start 容器名

#查看docker容器中的进程,docker容器中的进程通过宿主机的ps -ef命令也可以看到
docker top 9b40a74ceb82(容器id)

#Docker目录挂载 [1]
docker run -it -v /test:/soft centos /bin/bash    #启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录
    注:
        1. 在容器启动后,容器内会自动创建/soft的目录
        2. 宿主机目录如果不存在,则会自动生成

#docker通过link方式链接另一个容器 [1]
--link www_mysql:my_mysql_server.cc    #通过--link连接名为www_mysql的容器,并为其设置了别名my_mysql_server.cc

#重命名镜像tag [1]
docker tag 3da0f4853002 docker.io/mysql:latest_v1

#查看指定实例日志 [1] [2]
#docker logs -f -t --tail 500 www_mysql

#重命名(docker ps -a列表中的)容器 [1]
docker rename www_mysql  www_mysql_bak

#以指定格式显示容器列表 [1]
docker ps -a --format "{{.ID}}: {{.Command}}"
docker ps -a --format "{{.ID}}: {{.Names}}"

posted on 2017-12-22 11:35  dream_bccb  阅读(211)  评论(0)    收藏  举报