Docker学习笔记
常用命令
镜像
# 拉取镜像 镜像名:版本号
docker pull mysql:5.6
# 查看
docker images -a
# 删除单个镜像
docker image rm #镜像ID
# 删除所有不使用镜像
docker image rmi $(docker images -q)
容器
# 启动
docker container start #id/容器名称
# 终止
docker container stop # id/容器名称
# 删除单个容器
docker container rm # id/容器名称
# 删除所有已停止的容器
docker container rm $(docker ps -aq)
# 删除所有容器(含正在运行)
docker container rm -f $(docker ps -aq)
#查看正在运行的容器
docker container ps
# 查看所有
docker container ls -a
# 停止所有容器
docker stop $(docker ps -aq)
# 清理所有处于终止状态的容器
docker container prune
# 杀死所有正在运行的容器
docker kill $(docker ps -aq)
网络
# 自定义
docker network create new_net_name
# 查看
docker network ls
# 连接
docker network connect
# 查看连接信息
docker network inspect #id
# 删除某一个
docker network rm #id
# 删除所有
docker network prune
查看资源占用情况
docker stats
进阶操作
显示所有容器IP
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
Dockerfile
# 镜像
FROM golang
# 创建工作工作目录
WORKDIR $GOPATH/src/golang
# 复制文件到到镜像指定目录
COPY . $GOPATH/src/golang
# 构建镜像
RUN go build .
# 暴露端口
EXPOSE 8001
# 程序入入口
ENTRYPOINT ["./golang"]
docker-compose
# 启动 配置文件名为docker-compse.yml -d后台启动
docker-compse -f #docker-compose.yml up -d
时区设置
environment:
TZ: Asia/Shanghai #中国时区
MYSQL
version: '3'
services:
mysql:
#构建mysql镜像
image: mysql:5.6
container_name: mysqlv56 # 容器名
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456 #root管理员用户密码
MYSQL_USER: test #创建test用户
MYSQL_PASSWORD: test #设置test用户的密码
TZ: Asia/Shanghai
ports:
- '3306:3306' #host物理直接映射端口为3306
volumes:
#mysql数据库挂载到host物理机目录
- '~/docker/mysql5_6/data:/var/lib/mysql'
# 容器的配置目录挂载到host物理机目录
# - '~/docker/mysql5_6/mysql.conf.d:/etc/mysql/mysql.conf.d'
Gitlab