Docker学习2——常用命令记录

# Docker

主要记录下自己平时经常使用到的命令,会持续完善。

CentOS7 安装 Docker 摸我,更换国内源 摸我

Docker 部署

以部署 Jenkins 为例

1.拉取 docker 镜像

docker pull jenkins/jenkins:lts

2.启动容器(需要限制硬件的使用)

docker run -d --cpus=".5" -m 1g --memory-swap 0 --restart=always -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts

3.查看默认密码

cat /var/jenkins_home/secrets/initialAdminPassword

4.修改容器的时间和时区

docker cp /usr/share/zoneinfo/Asia/Shanghai {容器id}:/etc/localtime

5.容器内安装node

# 连接容器命令行
docker exec -u root -it {容器id} /bin/bash 
mkdir /opt/node
cd /opt/node
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz
tar -xvf node-v10.16.3-linux-x64.tar.xz
rm -rf node-v10.16.3-linux-x64.tar.xz
cd node-v10.16.3-linux-x64/
ln -s /opt/node/node-v10.16.3-linux-x64/bin/node /usr/bin/node
ln -s /opt/node/node-v10.16.3-linux-x64/bin/npm /usr/bin/npm
ln -s /opt/node/node-v10.16.3-linux-x64/bin/npx /usr/bin/npx
node -v
exit

列出容器

docker ps
# 显示所有的容器,包括未运行的。
docker ps -a

列出本地镜像

docker images

删除本地一个或多少镜像

docker rmi xxx/ubuntu:v4
# 强制删除
docker rmi -f xxx/ubuntu:v4

推送镜像到 Docker Hub

用户名必须已在dockerhub注册

docker push sherlocky/springboot-gradle-docker-demo

连接容器命令行

# Docker 1.3.X+
docker exec -it {容器id} /bin/bash
## 还可指定 root 用户
docker exec -it {容器id} -u root /bin/bash

查看日志

docker logs -f {容器id}
## 追踪最近30分钟的日志
docker logs -f --since 30m {容器id}

修改docker 容器时区

docker cp /etc/localtime xxx:/etc/localtime

将现有容器打成镜像

docker commit -a "Sherlock" -m "Sherlock's xxx镜像,基于jenkins:lts官方镜像(20191227)" -p {容器id} Sherlock/jenkins:lts

save 导出镜像

docker save [options] images [images...]
-o>表示输出到文件,redis.tar 为目标文件,redis:latest是源镜像名(name:tag),也可以直接用镜像的id。

docker save -o redis.tar redis:latest
# 或
docker save > redis.tar redis:latest

load 导入镜像

docker load [options]
其中-i<表示从文件输入,会成功导入镜像及相关元数据,包括tag信息。

docker load -i redis.tar
# 或
docker load < redis.tar

export 和 import 导出导入 Docker 镜像

docker export [options] container
-o表示输出到文件,redis-container.tar为目标文件,redis-container是源容器名(name)。

docker export -o redis-container.tar redis-container

docker import [options] file|URL|- [REPOSITORY[:TAG]]

docker import redis-container.tar redis:test
# 或
cat redis-container.tar | docker import - redis:test

export、importsave、load区别

  • export命令导出的 tar 文件略小于save命令导出的。
  • export命令是从容器(container)中导出 tar 文件,而save命令则是从镜像(images)中导出。
  • export导出的文件再import回去时,无法保留镜像所有历史(即每一层 layer 信息,不熟悉的可以去看 Dockerfile),不能进行回滚操作。
  • save是依据镜像来的,所以导入时可以完整保留下每一层 layer 信息。

加入网络

docker network create network-zookeeper
docker network connect network-zookeeper zookeeper

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×