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}}"
相关文章
相关标签/搜索