🔧 如题
修改启动后容器的配置
首先关闭docker
1 | systemctl stop docker |
如果执行后提示
1 | Warning: Stopping docker.service, but it can still be activated by: docker.socket |
这表示docker在关闭状态下会被访问自动唤醒机制,很人性化,即这时再执行任意docker命令会直接启动。
如果不希望docker被访问自动唤醒,需要再执行(或者直接执行)
1 | systemctl stop docker.socket |
接下来修改配置,先进入docker的container里面:
1 | cd /var/lib/docker/containers/AAA |
这里 AAA 是 container ID,然后修改指定的配置即可
1 | vim config.v2.json |
docker常用命令
linux 安装
1 | yum update ;yum -y install docker ; yum install docker-io; |
启动和开机启动service docker startchkconfig docker on
查看所有镜像docker images
获取镜像
docker pull查看所有容器docker ps -a
查看正在运行的容器docker ps
进入正在运行的容器docker exec -t -i 容器id /bin/bash
退出ctrl+d
应用场景:可以在里面重启应用程序
执行容器中的脚本
1
docker exec -it 容器id /bin/bash -c 'echo $PATH'
查看容器的网络配置docker inspect 容器名
查看容器的IP地址
1
docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器名
修改镜像名称和标签名称
1
docker tag eb40dcf64078 django:latest
eb40dcf64078为images id
运行镜像docker run –name mynginx -d nginx:latest
运行镜像并保持后台运行
1 | docker run -itd --name containerName imageId |
端口映射
docker run -it -p 外部端口:容器端口 –name 起个名字 镜像名称运行之前启动过的容器docker start 容器 id,容器名等
重启
docker restart 容器id停止正在运行的容器* docker stop 容器,容器名id等
停止指定容器1
docker stop $(docker ps | grep 'screenshot'| awk '{print $1}')
docker镜像和容器删除注意:1. 删除前需要保证容器是停止的 stop2. 需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)3. 顺序需要先删除容器
docker rm CONTAINER_ID//先删除容器
docker rmi IMAGE_ID //再删除镜像
常用命令
复制e.g. -> docker cp config_inc.php mantis_mantisbt_1:/var/www/html/config/
应用场景docker cp 可以解决因docker容器内部配置文件出现问题而无法通过docker exec -i -t 容器名 /bin/bash进入的状况,比如容器内部无限重启时。
可以将正在运行的容器commit成镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]OPTIONS说明:-a :提交的镜像作者;-c :使用Dockerfile指令来创建镜像;-m :提交时的说明文字;-p :在commit时,将容器暂停。e.g. docker commit -m=”comment” -a=”author” cd1ce3371224 java8:1.0
在docker之间导出导入镜像的方法http://www.jb51.net/article/119038.htm
- 导出 export - 导入 import
导出格式:docker export CONTAINER(容器)docker export docker_mantisbt_1 > ./docker_mantisbt.tar
导入格式:docker import CONTAINER(容器)docker import - docker_mantisbt < docker_mantisbt.tar
2.保存save - 加载 load相当于镜像的备份和恢复
保存格式:docker save IMAGE(镜像)docker save 9610cfc68e8d > /home/myubuntu-save-1204.tar
加载格式:docker load IMAGE(镜像)docker load < /home/myubuntu-save-1204.tar
3.导出 export 与 保存 save 的区别
(1)export导出的镜像文件大小 小于 save保存的镜像
(2)export 导出(import导入)根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag
);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images –tree) 注:导入加载进来觉得不合适可以使用 docker rm 容器ID 、 docker rmi 镜像ID 来删掉。
移除所有的容器和镜像(大扫除)docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a) -q, –quiet Only display numeric IDs
移除孤立的容器
1
docker container prune
清理镜像
我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:1
docker image prune
docker制作
在一个空白目录中,建立一个文本文件,并命名为 Dockerfile
,注意.
表示上下文。
1 | docker build -t {imageName:imageVersion} . |
docker上传仓库
1 | docker login {registry_address} -u {用户名} -p {密码} && docker push {imageName:imageVersion} |
修改容器配置文件(env等)
配置文件位置:/var/lib/docker/containers/容器ID/config.v2.json
容器ID 有点长,所以在容器关闭前记录下容器ID
修改,确保docker服务关闭!!!
vim config.v2.json